网络流
文章平均质量分 80
RookieGD
游戲開發學習
展开
-
poj Secret Milking Machine
题意:有n个点,之间有p条路径(无向,可重复),要求求出要同时存在T条路径(每条边都不重复的条件下),路径中边的最短距离。 方法:二分搜索+最大流,二分枚举所有的距离,求出最短的,再构造网络(存在一条边两点之间的通路小于枚举值,两点间的流量自加1),最后的最大流如果是大于#include #include using namespace std; const int inf = 0x7fffff原创 2012-08-02 21:17:18 · 543 阅读 · 0 评论 -
poj 1815 Friendship
拆点法,把一个点拆为两个,之间的流量为点的权值,这样求割点的集合就变为了求割边的集合。#include using namespace std; const int maxn=405; const int INF=0x7ffffff; int c[maxn][maxn],dep[maxn],q[maxn],flow[maxn][maxn],num[maxn],pre[maxn]; void bfs原创 2012-08-04 19:11:59 · 889 阅读 · 0 评论 -
poj Drainage Ditches
模版题,很多人A.模版:http://blog.csdn.net/rookie_algo/article/details/7803313#include using namespace std; const int inf = 0x7fffffff; const int MAXN = 210; const int MAXM = MAXN*MAXN; int map[MAXN][MAXN]; int原创 2012-07-30 21:41:43 · 441 阅读 · 0 评论 -
poj1459 Power Network
水题,难的的1A。。。 网络流SAP,增加一个超级源和一个超级汇,而发电站的最大发电量和用电站的最大用电量分别记为从超级源到发电站的最大流量和用电站到超级汇的最大流量。 //428K 469MS #include using namespace std; const int inf = 0x7fffffff; const int MAXN = 210; const int MAXM = M原创 2012-07-31 02:15:15 · 454 阅读 · 0 评论 -
网络流算法总结 Edmond-Krap + SAP(GAP优化)+Dinic
花了几天来学最大流问题,折腾的我头都晕了,下面就来让我做个总结。 首先介绍一下网络流,流网络G=(V,E)是一个有向图,其中每条边又有一个非负容量c(u,v)>=0,如果存在一条边(u,v)不属于G,那么可以认为c(u,v)=0。网络流中两个点,s(源点)和e(汇点)。 一、网络流的三个性质 : 1、容量限制: f(u,v) 2、反对称性:f(u,v) = - f(v,u) 3、流原创 2012-07-30 21:36:51 · 1862 阅读 · 0 评论 -
poj2112 Optimal Milking
由于之前没做过多重二分匹配问题,所以一直没有头绪,折磨了我好久,后来看到别人用二分查找+floyd+网络流 来实现,自己也就用这种方法A掉了。 具体方法是: 1)先用floyd求到任意milking machine到 任意奶牛之间距离 2)查找到最长的一条距离,并记录下来为max,那么我们就可以知道,要求的值就是在 [0,max]区间 3)下面就开始二分查找了,找到0到max之间,最小的原创 2012-08-01 09:22:55 · 1350 阅读 · 0 评论 -
poj3204 Ikki's Story I - Road Reconstruction
题意:有一个国家,有一个物资提供城市(编号为0),它负责通过城市间的路线向该国首都(编号为n-1)传送物资,但这些城市间的路线上传送的物资的量是有限的,所以传到首都的物资太少,所以国王想花钱修某些城市间的道路,使之传送的物资量增多以增加首都物资获得量。为了避免浪费钱力,他想找出那些只要重建(扩建)就能使首都物资获得量增加的道路。问这样的道理有几条。 思路:既然首都的物资获得量在未扩建前有原创 2012-08-02 03:30:51 · 1012 阅读 · 0 评论