随笔分类 - 网络流
摘要:# 题目大意 给出一个数列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] 发现
阅读全文
摘要:# 题目大意 给出一个有向图,有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
阅读全文
摘要:题目大意 给出一个无向图,可以删掉若干点,删i的代价是ai,最大化Σ|剩余连通块bi之和|-代价 n,m<=300 题解 看错题后的版本:每删掉一个点对其相连连通块计算贡献,使最后和最大 完全不可做 先删掉一些点,对剩下的一个块里的贡献同为+1或-1,则可以转化为对每个点赋+1/-1/删掉,最终贡献
阅读全文
摘要:题目大意 题解 好题 设0的个数为z,一个显然的结论是答案上界为z/2 以第z/2个0为分界划开,左边的称为L右边的称为R,那么L中右侧和R中左侧的0个数>=z/2 可以发现这样转化之后一个点只需要考虑在其所在集合的连边,即L集考虑向左的边R集考虑向右的边 因为总数<=z/2而任意一边的0个数>=z
阅读全文
摘要:题目大意 题解 直接按要求平衡即可,因为源汇可以出入所以要连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
阅读全文
摘要:题目大意 题解 直接费用流连边有n^2条边,所以考虑新建四个点分别表示四种绝对值情况,然后和这四个点连即可 因为求的是最大值所以没有问题 code 记得标记队列里的元素 #include <bits/stdc++.h> #define fo(a,b,c) for (a=b; a<=c; a++) #
阅读全文
摘要:题目描述 n<=4000 题解 线段树性质:一次区间查找从左往右对应右子树->右子树->...->左子树->左子树 把[l,r]向r+1连边,r+1向[r+1,l']连边,跑上下界最小流即可 上下界最小流=上下界可行流-残量网络T->S最大流,可行流=T->S的inf边跑过的流量 染色树的叶子节点要
阅读全文
该文被密码保护。
摘要:https://www.cnblogs.com/nietzsche oier/p/8185805.html
阅读全文
摘要:最小割树 求任意两点间的最小割 每次把当前点集中任意两点uv作为源汇跑最小割,连一条uv之间权值为最小割的边,之后按照分成的集合向下做 判断一条边是否为割边就直接判当前方向即可,注意可以走 非当前集合的点 两点间最小割=新图中路径上的最小边权 证明:https://blog.csdn.net/axx
阅读全文