摘要: P1433 吃奶酪 SolutionP4970 全村最好的嘤嘤刀P1879 [USACO06NOV]玉米田Corn Fields SolutionP3475 [POI2008]POD-Subdivision of KingdomP3092 [USACO13NOV]No Change GP3052 [ 阅读全文
posted @ 2020-03-03 20:13 syzf2222 阅读(319) 评论(0) 推荐(0)
摘要: 超级源点向每个集合连权值为这个集合的值的边,每个集合向每个元素连权值为极大值的边,每个元素向超级汇点连权值为其花费的边。 答案即为集合值的和减去最大流(最小割) 看代码: #include<bits/stdc++.h> using namespace std; #define int long lo 阅读全文
posted @ 2020-03-03 17:15 syzf2222 阅读(136) 评论(0) 推荐(0)
摘要: - [P3410 拍照] Solution- [P4744 [Wind Festival] Solution- [P2765 魔术球问题] Solution- [P2711 小行星] Solution- [P4055 [JSOI2009]游戏](https://www.luogu.com.cn/pr 阅读全文
posted @ 2020-03-03 15:32 syzf2222 阅读(500) 评论(2) 推荐(1)
摘要: 求最大连通块…… #include<bits/stdc++.h> using namespace std; const int maxn=1e7+10; const int maxm=2*1e5+10; int vis[maxn]; int beg[maxn],nex[maxn],to[maxn], 阅读全文
posted @ 2020-03-02 09:35 syzf2222 阅读(110) 评论(0) 推荐(0)
摘要: 计算每个点的入度。 #include<bits/stdc++.h> using namespace std; const int maxn=1e5+10; int vis[maxn],rd[maxn]; int top; int main(){ int x,y; while(1){ scanf("% 阅读全文
posted @ 2020-03-02 09:03 syzf2222 阅读(92) 评论(0) 推荐(0)
摘要: 题意:判断给出的图是否为一棵树。 并查集的简单应用。 注意判断是否是一张空图。 #include<bits/stdc++.h> using namespace std; const int maxn=1e5+10; int vis[maxn],fa[maxn]; int find(int x){ i 阅读全文
posted @ 2020-03-01 10:35 syzf2222 阅读(106) 评论(0) 推荐(0)
摘要: 这题有些不一样,睁大眼睛看题,发现不用连续地取,那么我们就可以预处理一下。 把h从大到小排个序,然后从前往后扫一遍,如果当前的这片土地的w值不比前面的最大值大,那么他就可以被包含,无贡献。 这时我们取出了一个h递减,w递增的数列,这时取就必须连续了。 递推式长这样:f[i]=f[j]+b[i].w* 阅读全文
posted @ 2020-02-29 22:58 syzf2222 阅读(115) 评论(0) 推荐(0)
摘要: 这道题不太一样了。通过费用提前可以推倒递推式长这样:f[i]=min{f[j]+sumt[i]*(sumc[i]-sumc[j])+s*(sumc[n]-sumc[j])} 写成一次函数形式长这样:f[j]=(s+sumt[i])*sumc[j]+f[i]-sumt[i]*sumc[i]-s*sum 阅读全文
posted @ 2020-02-29 22:57 syzf2222 阅读(114) 评论(0) 推荐(0)
摘要: 虽然又是一遍AC的,但不得不说这题打得我好慌张,还调了十几分钟,虽然都是智障错误。 回归正题。猛然一看,n只有3000,貌似不要斜率优化耶。 但事实上,普通DP是N^2*M的,所以还是得斜率优化哈哈。 构造数列A1~Am,表示第i段的和。 方差乘m^2后长这样子:m*Ai^2-(Ai)^2 惊喜的发 阅读全文
posted @ 2020-02-29 22:55 syzf2222 阅读(135) 评论(0) 推荐(0)
摘要: 这是我斜率DP第一个没有一遍AC的,原因是第一遍忘开long long了。 这一题比较特殊,细心的同学一定发现了,递推式不带f。 为了方便,设d数组的后缀和为sd[i]=sd[i+1]+d[i],设k数组的前缀和为sk[i]=sk[i-1]+k[i](k[i]即是题目中的w[i]) 设f[i]为第二 阅读全文
posted @ 2020-02-29 22:54 syzf2222 阅读(105) 评论(0) 推荐(0)