网络流
芋智波佐助
菜鸟一只
展开
-
UVa 563 Crimewave / 最大流EK
这题有很多第一次 第一次用了数组表示的邻接表 以前都是用vector 第一次学了拆点 参考大神的 最大流建图是重点 题意看图 就是所有点要到边界 不能转弯超过一次 不能重叠 第一次不懂什么是拆点 看了下这个就懂了 说的蛮好的 http://www.cnblogs.com/scau20110726/archive/2012/12/20/2827177.html #include #in原创 2013-12-18 18:36:21 · 1299 阅读 · 2 评论 -
UVa 10330 Power Transmission / 最大流EK
最大流 这题有很多起点和终点 在取2个点(0和n+1) 作为唯一的起点和终点 此外每个点也有容量限制 建图时每条边上的容量为这条边和2个端的容量的最小值 然后EK就行 #include #include #include #include using namespace std; const int MAX = 110; int num[MAX]; int a[MAX];原创 2013-12-13 09:44:22 · 1131 阅读 · 0 评论 -
HDU 3081 Marriage Match II 二分+最大流
题目来源:HDU 3081 Marriage Match II 题意: 思路: 错误代码 纠结不知道哪错了 先放一放 #include #include #include #include #include using namespace std; const int maxn = 1010; const int INF = 999999999; struct Edg原创 2014-05-08 17:46:58 · 873 阅读 · 0 评论 -
HDU 4240 Route Redundancy 一条流最大的路径
题目来源:HDU 4240 Route Redundancy 题意:求最大流与一条流最大的路径的比值 前者最大流求出 后者是每一条路的最小值再取大 思路:我用的是dinic 可以在DFS的时候在传递一个参数 表示当前增广路可以通过最大的流量 然后当x==t 到达汇点时 在取他们的最大值 #include #include #include #include #include usi原创 2014-05-08 09:06:11 · 994 阅读 · 0 评论 -
HDU 4183 Pahom on Water 来回走不重复点的网络流
题目来源:HDU 4183 Pahom on Water 题意:若干个区域 每个区域有一个值 区域是圆 给出圆心和半径 从起点(值为400.0)到终点(值为789.0)满足走相交的圆 并且值必须递增 然后从终点到起点 值必须递减 此外区域只能去一次 思路:建图 相互能走的区域连一条边 因为只能走一次 所以拆点 如果没有来回 只有去 那么判断最大流为1即可 现在还要回来 并且回来的条件和原创 2014-05-07 21:41:56 · 1084 阅读 · 0 评论 -
BZOJ 1189 紧急疏散evacuate 二分+BFS+最大流
建图的时候需要拆点,按照每一个时间点拆点,主要可以保证每次只有一个人走出门。 BFS处理出人到门的距离 二分答案,判断是否可以建边,S指向每一块空地,空地到门如果可以建边就建一条容量为x的边 每个门按照时间拆点,保证单位时间内走一次,然后跑最大流原创 2016-07-22 09:02:21 · 386 阅读 · 0 评论