费用流
seeeagull
这个作者很懒,什么都没留下…
展开
-
[洛谷P2153] [SDOI2009]晨跑(费用流)
典型的最小费用最大流。只要把一个点拆成两个,中间连一条容量1费用0的边来限制每个点只用一次就好。 要注意第1个点和第n个点不用限制次数,以及从1到n的边容量为1。 #include<cstdio> #include<cstring> #include<queue> #include<algorithm> using namespace std;...原创 2019-01-22 15:43:46 · 141 阅读 · 0 评论 -
[洛谷P2053] [SCOI2007]修车(费用流)
https://www.luogu.org/problemnew/show/P2053 每个工人在一个时间只能修一辆车,所以把每个工人拆成n个点,表示不同时段下的该工人。然后将n*m个工人与n辆车连接,建二分图。第j个时间段下的i工人(就是i工人所修的倒数第j辆车)向k车的边容量为1,费用为i工人修k号的费用乘j。再从源点向所有时段的工人连边,容量1费用0;从所有车向汇点连边,容量1费用0。然后...原创 2019-01-21 13:46:13 · 116 阅读 · 0 评论 -
[洛谷P2050] [NOI2012]美食节(费用流)
https://www.luogu.org/problemnew/show/P2050 题目和 SCOI2007修车 差不多,但是数据范围更大了,如果只是改了从食物到汇点的边的容量,还像那道题一样直接跑费用流会T的。 最大流为p,p不超过800,且每找到一条增广路流量都为1,也就是其实只需要800次spfa。spfa的复杂度和边数相关,所以我们可以一开始只将源点和每个厨师的第一时间段(就是该厨...原创 2019-01-21 20:31:54 · 123 阅读 · 0 评论 -
[洛谷P2604] [ZJOI2010]网络扩容(最大流+费用流)
https://www.luogu.org/problemnew/show/P2604 先直接跑一边最大流,为了第二问令每条边的费用为0。 然后继续用残量网络,在原先有边的点之间再建一条容量为inf,费用为原边扩容费用的边。因为残量网络中的边费用为0,所以会优先走残量网络的。为了保证将·容量扩大k,我们再建一个新汇点,从原汇点向新汇点连容量为k费用为0的边。然后跑费用流就可以了。 #inc...原创 2019-01-21 22:04:43 · 144 阅读 · 0 评论