8.20~8.25刷散题记录 By cellur925

记录一些散题 / 价值不大但还是想记下来的题目 / 没正八经写博客的题目

8.24

Luogu P1508 沙雕题数字三角形的二维升级版,但是注意阅读理解,李大水牛从桌子最后一行下侧开始吃,而本题是自下而上,其实按自上而下做也行,只不过最后的答案变成了三者取一最值。(面前、左上、右上)其他与数字三角形无异。

 1 #include<cstdio>
 2 #include<algorithm>
 3
 4 using namespace std;
 5
 6 int n,m;
 7 int f[400][400];
 8
 9 int main()
10 {
11     scanf("%d%d",&n,&m);
12     for(int i=1;i<=n;i++)
13         for(int j=1;j<=m;j++)
14             scanf("%d",&f[i][j]);
15     for(int i=1;i<=n;i++)
16         for(int j=1;j<=m;j++)
17             f[i][j]+=max(f[i-1][j-1],max(f[i-1][j],f[i-1][j+1]));
18     int qwq=(m+1)>>1;
19     printf("%d",max(f[n][qwq],max(f[n][qwq-1],f[n][qwq+1])));
20     return 0;
21 }

8.23

Luogu P1550 最小生成树。(这题记得第一次月考完和Chemist在机房想一起刷点贪心,我抽到了这个题,两人一起做,后来才发现是MIT,但是我没做,大神写了qwq我四个月以后才写qwq).鉴于每个农庄自己凿井的情形,我们可以再构造一个源点,让所有自己凿井的情况与源点连边。然后就是裸的MIT了。但是注意无向边开两倍,还因为这个制杖错误没能1A,热了三个点orz。。。

Luogu P1993 差分约束系统。判断不等式组是否有解,直接建图判是否有负环。实践了一下可爱lyc的差分约束系统理论,但是漏洞百出。果然实践出针织qwq。

几个注意地方:1 不等式要化对

       2 最后把所有的点和0连0权边,而不是仅把输入中涉及的点连

       3 据说本题会卡bfs-spfa判负环,抄题解学习了一下dfs版本的spfa判负环,可以留当板子用。

       4 spfa中dis[0]=0(这还需要说嘛)

       5 head数组初值为-1,因为有编号为0的点存在。(没有亲测如果不赋会怎样,题解中不赋貌似也能过,可能是数据较弱的缘故)。

 1 #include<cstdio>
 2 #include<algorithm>
 3 #include<cstring>
 4
 5 using namespace std;
 6
 7 int n,m,tot;
 8 int head[10090],vis[10090],dis[10090];
 9 struct node{
10     int next,to,val;
11 }edge[100090];
12
13 void add(int x,int y,int z)
14 {
15     edge[++tot].val=z;
16     edge[tot].to=y;
17     edge[tot].next=head[x];
18     head[x]=tot;
19 }
20
21 bool spfa(int u)
22 {
23     vis[u]=1;
24     for(int i=head[u];i!=-1;i=edge[i].next)
25         if(dis[edge[i].to]>dis[u]+edge[i].val)
26         {
27             dis[edge[i].to]=dis[u]+edge[i].val;
28             if(vis[edge[i].to]) return 0;
29             if(!spfa(edge[i].to)) return 0;
30         }
31     vis[u]=0;
32     return 1;
33 }
34
35 int main()
36 {
37     scanf("%d%d",&n,&m);
38     memset(head,-1,sizeof(head));
39     memset(dis,127,sizeof(dis));
40     for(int i=1;i<=m;i++)
41     {
42         int opt=0,a=0,b=0,c=0;
43         scanf("%d",&opt);
44         if(opt==1)
45         {
46             scanf("%d%d%d",&a,&b,&c);
47             add(a,b,-c);
48         }
49         else if(opt==2)
50         {
51             scanf("%d%d%d",&a,&b,&c);
52             add(b,a,c);
53         }
54         else if(opt==3)
55         {
56             scanf("%d%d",&a,&b);
57             add(a,b,0);
58             add(b,a,0);
59         }
60     }
61     for(int i=1;i<=n;i++) add(0,i,0);
62     dis[0]=0;
63     if(spfa(0)) printf("Yes");
64     else printf("No");
65     return 0;
66 }

留几个待填坑吧:

瓶颈树

集合

校园网

控制公司

无向图tarjan

奶牛家谱

派对灯

原文地址:https://www.cnblogs.com/nopartyfoucaodong/p/9531222.html

时间: 2024-08-28 07:11:54

8.20~8.25刷散题记录 By cellur925的相关文章

动态规划刷题记录1(不定期更新~)

Dp刷(chao)题记录&题(fu)解(zhi) 1.bzoj1055 [HAOI2008]玩具取名 题目大意:字典中有四个字母,’w’\’i’\’n’\’g’,给出每个字母的转换关系,即某个单个字母可以转换为两个字母.给出一个文本,求最初的可能文本(刚开始有且仅有一个字母). 题解:明显是一道区间dp嘛~.设状态为文本[i,j]内的字母可以转化为字母[k],即f(i,j,k),要解状态的可能性.转移思路,自然是枚举i到j内的断点,再枚举关系.那么初始的状态转移方程就是 f[i][j][k]=f

暑期刷题记录

已经决定不玩空间了,在这里开一贴,用来记录暑假期间刷过的每一题. 时间从7.29号开始计算. 1. HDU 4883 TIANKENG’s restaurant    ( 贪心 ) 这个是bestcoder #2 的第一题,,居然想半天没有做出来,简直是太弱了,居然又在分情况讨论 题目大意:TIANKENG的饭店有客人陆续到达,如果再一批客人没有走的情况下,新来的客人就需要另外的座位,问最少需要多少座位. 题解: 贪心算法,首先对所有时间进行排序(时间相同以人数为第二关键字), 然后如果是到达,

首师大附中科创教育平台 我的刷题记录(6)

首师大附中科创教育平台我的刷题记录(给大家刷26--30题吧) 仅供同学们参考,禁止抄袭!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #include<iostream> #include<math.h> using namespace std; int main() { double I,R,r,E; cin>>I>>R>>r; E=I*(R+r); cout<<E<<endl; return 0

首师大附中科创教育平台 我的刷题记录 0284 最强大脑

从现在开始,我的刷题记录都开始给大家一个一个刷!今天给大家献上“E”级题:最强大脑!! 试题编号:0284     最强大脑 难度级别:E: 运行时间限制:3000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 zhb国是一个传说中的国度,国家的居民叫做最强(chang)大脑(diao).Zhb国是一个N×M的矩形方阵,每个格子代表一个街区.然而zhb国是没有交通工具的.居民大脑(diao)们完全靠地面的弹射装置来移动.每个街区都装有弹射装置.使用弹射装置是需

BZOJ 刷题记录 PART 1

作者 : Dolphin 原文地址:http://blog.csdn.net/qingdujun/article/details/27109035 一.实体完整性定义 [例1]将Student表中的Sno属性定义为码. CREATE TABLE Student ( Sno CHAR(10) PRIMARY KEY, /*在列定义主码*/ Sname CHAR(20) NOT NULL, Sage SMALLINT ); 或者: CREATE TABLE Student ( Sno CHAR(10

Codeforces 刷题记录

Codeforces 每日刷题记录 打'+'是一些有启发意义的题目,部分附上一句话题解,每日更新3题,大部分题目较水. 1.+CF1073E:状压,数位dp,官方题解std骚操作 2.CF1072A 3.CF1072B 4.CF1072C 5.CF1068C:读题恶心 6.CF1073D:猜复杂度,模拟 7.CF1088A 8.CF1088B 9.CF1088C:构造思想 10.CF1066A 11.CF1066B 12.CF1066C 13.+CF1088E:推结论,tree dp,贪心 14

刷题记录:[De1CTF 2019]Giftbox &amp;&amp; Comment

目录 刷题记录:[De1CTF 2019]Giftbox && Comment 一.知识点 1.sql注入 && totp 2.RCE 3.源码泄露 4.敏感文件读取 刷题记录:[De1CTF 2019]Giftbox && Comment 题目复现链接:https://buuoj.cn/challenges 参考链接:De1CTF Web WriteUp BUUCTF平台 web writeup 第三弹 一.知识点 1.sql注入 && t

刷题记录:[安洵杯 2019]easy_serialize_php

目录 刷题记录:[安洵杯 2019]easy_serialize_php 知识点 PHP反序列化 刷题记录:[安洵杯 2019]easy_serialize_php 题目复现链接:https://buuoj.cn/challenges 参考链接:第二届安洵杯2019部分writeup 知识点 PHP反序列化 payload为_SESSION[phpflag]=;s:1:"1";s:3:"img";s:20:"ZDBnM19mMWFnLnBocA==&quo

刷题记录:ctf473831530_2018_web_virink_web

目录 刷题记录:ctf473831530_2018_web_virink_web 知识点 限制字符数量写shell 内网探测 PHP-FPM未授权访问漏洞 rsync未授权访问漏洞 刷题记录:ctf473831530_2018_web_virink_web 题目复现链接:https://buuoj.cn/challenges 参考链接:BUUOJ刷题-Web-ctf473831530_2018_web_virink_web 知识点 限制字符数量写shell 仅用20个字符想完成后面复杂的操作肯定