网络流总结(三)费用流
关于最小费用最大流
这里的最小费用最大流是在最大流的基础上把费用最小化
Ek费用流
因为会有负边权,所以需要用Spfa求出最小费用,之后Ek一发就好
代码还是不放了吧
ZKW费用流
和Dinic几乎一样,就是在dfs的时候记一个vis数组即可,否则出0环就写比了
ZKW费用流在层数较少的时候会很快,比如无限之环这道题:
Ek费用流8000ms,zkw费用流100ms
代码也咕了
T1晨跑
题目描述
输入格式
输出格式
其实就是限制每个点只能经过一次,拆点限流即可
T2修车
题目描述
输入格式
输出格式
我们发现每个车的贡献系数等于它的修车师傅倒数第几个修它
所以考虑把每个修车师傅拆成n个点,代表这个人倒数第几个修的车,问题便迎刃而解了
T3数字配对
本题沿用BZOJ3158的思路,由于质因子个数(一个质数可能算多次,设其为f[i])差1才会对答案产生贡献
所以可以按f[i]奇偶性分成两个部分,部分之间连边,跑最大费用最大流直到再增广费用变为负
T4美食节
与修车思路类似,直接做会T,考虑边增广边加边:
对于每个厨师当前点用完了再去加下一个点,便可以通过本题