网络流
ITCharge
高效率编程,慢节奏生活。
展开
-
POJ1459 Power Network【最大流】【Edmond-Karp】
题目大意: 一个电力网络包含很多节点(发电站、消费者以及中转站)和电力传输线。所有发电站不消耗电力, 所有消费者不产生电力,所有中转站不产生也不消耗电力。在网络中,任意两点u和v之间最多只 有一条传输线的存在,且能够从u望v传输最多w单位容量。计算整个网络的最大电力消耗。 思路: 一道非常基础、非常典型的网络流题目。每个发电站当做一个源点,每个消费者当做一个汇点。但 是这样子并不适合任何一种求网络最大流算法。那么现在设置一个超级源点,连向所有发电站,容 量为发电站的点容量。再来设置一个超级汇点,让所有的消原创 2015-02-23 22:47:29 · 1021 阅读 · 0 评论 -
HDU3549 Flow Problem【最大流】【Edmond-Karp】
题目大意: 给你一个N个节点M条边的加权有向图,源点为1,汇点为N,求此图的最大流。 思路: 这道题就是网络流求最大流的裸题。直接用Edmond-Karp算法来做就可以了。原创 2015-02-26 21:47:08 · 909 阅读 · 0 评论 -
HDU1532 Drainage Ditches【最大流】【Edmond-Karp】
题目大意: 约翰要修建水沟用来排放农场的雨水,该水沟系统是一个网络流,总共有N条边,M个节点。 1是源点,M是汇点。求最大流是多少。 思路: 同样是网络流求最大流的裸题。直接用Edmond-Karp算法来做就可以了。原创 2015-02-26 22:15:46 · 938 阅读 · 0 评论 -
HDU4280 Island Transport【最大流】【SAP】
题目大意: 有N个岛屿,M条双向道路。每条路每小时最多能通过Ci个人。给你N个岛屿的坐标。问:一个小时内, 最多能将多少游客从最西边的岛送至最东边的岛屿上。 思路: 网络流求最大流的裸题。先通过坐标找到最西边的岛屿和最东边的岛屿,记录并标记为源点和汇点。然后 用链式前向星来存储图,将M条双向边加入到图中。然后用SAP算法来做,据说还没有卡SAP的网络流。 算法用了GAP优化、当前弧优化,具体参考代码。原创 2015-04-09 17:47:11 · 1408 阅读 · 0 评论 -
POJ1273 Drainage Ditches【最大流】【SAP】
题目大意: 农民John的田里有M个池塘和N条水沟用来排水,池塘编号为1~M,1号池塘是所有水沟的源点, M号池塘是水沟的汇点。给你N条水沟所连接的池塘和所能流过的水量,求整个水沟从源点到汇点 最多能流多少水。 思路: 很明显的求网络流最大流问题。用链式前向星(邻接表)来存储网络,这样就不用考虑重边问题了。这 里的重边其实就是平行边。用SAP算法+GAP优化来求最大流就可以了。SAP+GAP模板参考我的另 一篇博文:http://blog.csdn.net/lianai911/article/detail原创 2015-04-09 19:46:33 · 1082 阅读 · 0 评论 -
网络流最大流EdmondKarp、SAP【模板】
EdmondKarp算法:const int MAXN = 220; //最大点个数int Map[MAXN][MAXN],pre[MAXN]; //Pre[]前驱数组 int N,NP,NC,M;bool EkBFS(int start,int end) //宽度优先搜索寻找增广路 { queue<int> Q; //宽度优先搜索队列 bool vis[MAX原创 2015-05-05 22:42:32 · 940 阅读 · 0 评论