随笔分类 -  网络流

摘要:# 题目大意 给出一个数列ai,每次可以选择**一个区间**[l,r]进行**全体+1**或**全体-1**,需要满足**区间长度len=r-l+1为奇质数p**,且操作过程中ai非负 求最少操作次数使得最终ai不减 n=0;设a[n+1]=b[n]=+inf,a[0]=0,b[0]=a[1] 发现 阅读全文
posted @ 2023-05-22 00:11 gmh77 阅读(50) 评论(0) 推荐(0) 编辑
摘要:# 题目大意 给出一个有向图,有k条特殊边,每条边每次询问指定容量 求每次询问的最大流 n,m #define fo(a,b,c) for (a=b; a=c; a--) #define Min(a,b) a=min(a,b) #define Max(a,b) a=max(a,b) #define 阅读全文
posted @ 2023-05-21 01:46 gmh77 阅读(12) 评论(0) 推荐(0) 编辑
摘要:题目大意 给出一个无向图,可以删掉若干点,删i的代价是ai,最大化Σ|剩余连通块bi之和|-代价 n,m<=300 题解 看错题后的版本:每删掉一个点对其相连连通块计算贡献,使最后和最大 完全不可做 先删掉一些点,对剩下的一个块里的贡献同为+1或-1,则可以转化为对每个点赋+1/-1/删掉,最终贡献 阅读全文
posted @ 2020-11-01 09:02 gmh77 阅读(296) 评论(0) 推荐(0) 编辑
摘要:题目大意 题解 好题 设0的个数为z,一个显然的结论是答案上界为z/2 以第z/2个0为分界划开,左边的称为L右边的称为R,那么L中右侧和R中左侧的0个数>=z/2 可以发现这样转化之后一个点只需要考虑在其所在集合的连边,即L集考虑向左的边R集考虑向右的边 因为总数<=z/2而任意一边的0个数>=z 阅读全文
posted @ 2020-10-15 21:33 gmh77 阅读(123) 评论(0) 推荐(0) 编辑
摘要:题目大意 题解 直接按要求平衡即可,因为源汇可以出入所以要连n->1 贡献根据c<f和c>f讨论,一开始把c设作max(c,f),根据f的变化使c在>=f的情况下尽量靠近原c code #include <bits/stdc++.h> #define fo(a,b,c) for (a=b; a<=c 阅读全文
posted @ 2020-09-17 22:18 gmh77 阅读(140) 评论(0) 推荐(0) 编辑
摘要:题目大意 题解 直接费用流连边有n^2条边,所以考虑新建四个点分别表示四种绝对值情况,然后和这四个点连即可 因为求的是最大值所以没有问题 code 记得标记队列里的元素 #include <bits/stdc++.h> #define fo(a,b,c) for (a=b; a<=c; a++) # 阅读全文
posted @ 2020-09-10 22:09 gmh77 阅读(130) 评论(0) 推荐(0) 编辑
摘要:题目描述 n<=4000 题解 线段树性质:一次区间查找从左往右对应右子树->右子树->...->左子树->左子树 把[l,r]向r+1连边,r+1向[r+1,l']连边,跑上下界最小流即可 上下界最小流=上下界可行流-残量网络T->S最大流,可行流=T->S的inf边跑过的流量 染色树的叶子节点要 阅读全文
posted @ 2020-08-02 08:25 gmh77 阅读(184) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2020-06-07 15:52 gmh77 阅读(9) 评论(0) 推荐(0) 编辑
摘要:https://www.cnblogs.com/nietzsche oier/p/8185805.html 阅读全文
posted @ 2020-02-20 22:22 gmh77 阅读(210) 评论(0) 推荐(0) 编辑
摘要:最小割树 求任意两点间的最小割 每次把当前点集中任意两点uv作为源汇跑最小割,连一条uv之间权值为最小割的边,之后按照分成的集合向下做 判断一条边是否为割边就直接判当前方向即可,注意可以走 非当前集合的点 两点间最小割=新图中路径上的最小边权 证明:https://blog.csdn.net/axx 阅读全文
posted @ 2019-12-23 23:45 gmh77 阅读(168) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示