随笔分类 - 网络流
摘要:Aimee 看起来就是个匹配问题 建模 超级源点和汇点是必须的,那么这样看来,我们把每个单位和每张桌子连一张容量为1的边,表示只能派一个人,超级源点和每个单位连对应人数的边,桌子同理,然后跑最大流并且检查最大流和人数就可以 #include<iostream> #include<cstdio> #i
阅读全文
摘要:Aimee 最小费用是最大流基础上的 那么就用spfa代替Ek的bfs就行 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<queue> using namespace std; i
阅读全文
摘要:根据konig定理可知 最大匹配数=最大流=最小割=最小点集覆盖 那么这个题就是一个最大流问题了 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> using names
阅读全文
摘要:加错边权了 最大流==最小割,毋庸置疑 但是这个题删的是点怎么办 那就把每一个点拆成两个,一入一出,然后中间连一条流量为1的边,图上原有的为inf 源点和汇点则大小也为inf 不能删啊 #include<iostream> #include<cstdio> #include<algorithm> #
阅读全文
摘要:Aimee 可以用网络流解决 建超级源点与超级汇点,源点与所有的外籍飞行员相连,容量为1(顶多选一人一次) 超级汇点同理,容量还是1,而飞行员之间的点就可以使大于等于1的任意数 顶多只有1的流量 最后所有漫流的边即为方案 方案书就是最大流 #include<iostream> #include<cs
阅读全文
摘要:Aimee 显然这是一个网络流 一开始,我们大可以随便找一条可行流 然后再找一条,可是如果要返回怎么办?可以建立对应的反向边,反向边的容量即即为正向边流量,构成残余网络,在残余网络上找到的从st的路径,就是一条可行流,并且,找到最大流的充要条件是它的对应残余网络没有增广路
阅读全文
摘要:Aimee 显然这是一个网络流 一开始,我们大可以随便找一条可行流 然后再找一条,可是如果要返回怎么办?可以建立对应的反向边,反向边的容量即即为正向边流量,构成残余网络,在残余网络上找到的从st的路径,就是一条可行流,并且,找到最大流的充要条件是它的对应残余网络没有增广路
阅读全文