
网络流
crazy852456
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
POJ 1273 Drainage Ditches
题意:给m个水塘,给出n条路以及该路的流量,求原点到汇点的最大流量。 第一道最大流的题,大致思路就是找增广路,直到不能再找到为止。 关于网络流方面的资料,http://www.cnblogs.com/luweiseu/archive/2012/07/14/2591573.html这个博客写得很详细! http://blog.youkuaiyun.com/ruleless/article/details/原创 2013-05-31 11:00:21 · 850 阅读 · 0 评论 -
hdu 4240 Route Redundancy(最大流)
这题下午做比赛的时候没有做出来,可能是题意没有很好的理解,后来又想了想,有些清楚了,就是找出图中的流量最大的一条路径,然后就输出最大流与该路径的最大流量的比值,每找一条路径的时候记录这条路的最小流量,然后在这些最小的流量里找到最大的那一个流量,最后输出比值。 #include #include #include #include #include #include #include #inclu原创 2013-07-23 22:08:41 · 1318 阅读 · 0 评论 -
poj 1325 Machine Schedule(最大流版)
建图: 源点s=0,汇点t=n+m+1 s到A的容量为1 B到t的容量为1 当a∈{A},b∈{B},a*b!=0时,a->b的容量为1 #include #include #include #include #include #include #include #define mem(a,b) memset(a,b,sizeof(a)) using namespace std; co原创 2013-07-22 16:01:10 · 625 阅读 · 0 评论 -
poj 1087 A Plug for UNIX(最大流)
建图: 把电器,插座,适配器这些都看作节点 构造一个超级源点和一个超级汇点 连接源点与电器,容量设为1 连接电器与插座,容量设为1 连接插座与汇点,容量设为1 连接适配器与插座,容量设为inf 在构造插座与适配器过程中,如果遇到一个没有出现过插座类型,就把这个原创 2013-07-22 14:51:32 · 559 阅读 · 0 评论 -
poj 1274 The Perfect Stall(最大流版)
建图: 构造一个源点和一个汇点 源点与牛相连,容量为1 牛与牛棚相连,容量为1 牛棚与汇点相连,容量为1 #include #include #include #include #include #include #include #define mem(a,b) memset(a,b,sizeof(a)) using namespace std; const int maxn = 5原创 2013-07-22 15:16:18 · 582 阅读 · 0 评论 -
poj 2516 Minimum Cost
第一道最小费用最大流,虽然是参考别人的代码敲的,算是入门的第一题了。 有N个客户,M个仓库,和K种货物。已知每个客户需要每种货物的数量,每个仓库存储每种货物的数量,每个仓库运输各种货物去各个客户的单位费用。判断所有的仓库能否满足所有客户的需求,如果可以,求出最少的运输总费用。 建图: 源点 S=0 汇点 T=N+M+1 供应商编号 1..原创 2013-07-18 15:05:34 · 513 阅读 · 0 评论 -
【转】带花树(一般无向图的最大匹配)
原文链接:http://fanhq666.blog.163.com/blog/static/8194342620120304463580/ 它的核心思想还是找增广路。假设已经匹配好了一堆点,我们从一个没有匹配的节点s开始,使用BFS生成搜索树。每当发现一个节点u,如果u还没有被匹配,那么就可以进行一次成功的增广;否则,我们就把节点u和它的配偶v一同接到树上,之后把v丢进队列继续搜索。我们给每个在原创 2013-07-12 16:16:00 · 862 阅读 · 0 评论 -
poj Power Network(最大流)
这题有多个发电站和多个用户,可以构造出一个源点和一个汇点,这样就成单源点和单汇点的最大流了。 #include #include #include #include #include #include #include using namespace std; #define maxn 200 const int inf=0x7ffffff; int c[maxn][maxn]; int f原创 2013-07-12 15:55:32 · 591 阅读 · 0 评论 -
poj 2226 Muddy Fields(二分图匹配)
每次只能消除一行或一列的相邻的*,建图的时候把每行每列的相邻的*看成一个点,然后再求最大匹配 #include #include #include #include #include #include #include using namespace std; int link[10010]; bool map[500][500]; bool vis[500]; char s[500][500原创 2013-07-12 13:22:36 · 613 阅读 · 0 评论 -
poj 3020 Antenna Placement(二分图匹配)
一个o能够覆盖相邻的两个*,问最少用多少个o覆盖全图,其实就是最小路径覆盖,可以把相邻的两个*看成一个点,然后就是求二分最大匹配 所求的最小路径覆盖 = |V|-最大独立集 = |V|-最大匹配数。而这题是无向匹配,多算了1倍,所以要除以2 #include #include #include #include #include #include #include using namespa原创 2013-07-12 13:18:24 · 607 阅读 · 0 评论 -
poj Selecting Courses
把课程和对应的课来做最大二分匹配,一天有12节课,map[c][(p-1)*12+q]即把课程与对应的课存进去了,然后就是最大二分匹配了 #include #include #include #include #include #include #include using namespace std; int map[310][310]; int match[310]; bool vis[3原创 2013-07-10 15:41:14 · 525 阅读 · 0 评论 -
POJ 1274 The Perfect Stall
题意:农民John有n头牛和m个牛棚,现在牛要产奶,但是每个牛只在自己喜欢的牛棚才产奶,求最多的产奶量。 输入:有多组数据,第一行是N和M,表示n头牛和m个牛棚,接下来有n行,每行开始有一个数si,表示编号为i的牛喜欢的牛棚的数目,接着是si个牛棚的编号。 输出:输出最多的产奶量。 匈牙利DFS实现: #include #include #include #include #inc原创 2013-06-10 14:22:18 · 447 阅读 · 0 评论 -
hdu 3572 Task Schedule(sap)
这题开始用EK敲的,结果TLE到死,然后在网上看到说sap比EK要快,然后就各种搜sap算法,贴个代码在这,但是个模板吧。 #include #include #include #include #include #include #include #define mm(a,b) memset(a,b,sizeof(a)) using namespace std; const int max原创 2013-07-27 13:23:19 · 605 阅读 · 0 评论