ACM_网络流
luke2834
A junior researcher~
展开
-
POJ1273 最大流模板题 初学网络流~
题意 不细说了,就是源是1,汇点是m的最大流模板思路 初学网络流,拿这题练练手。 总结下EdmondsKarp算法几个要注意的点: (1)算法本质就是利用BFS不停地找增广路,直到找不到为止。 (2)每次BFS后更新增广路时,一定注意减去或加上的都是最后Terminal得到流量。 (3)用连接表存的时候,为了原创 2015-03-12 18:38:05 · 722 阅读 · 0 评论 -
POJ3057 Evacuation 最大流+二分答案
题意在一个用矩阵描述的房间里,每个非墙位置都有一个人矩阵外侧一圈,是墙或者门每个人移动一格的时间为1,但是每个时刻通过门的人数只能为1问你最快所有人出房间的时间为多少思路 首先,我们很容易想到,给你时间t,看能不能出门,这样可以二分求解如果知道用网络流解该题,这个题的难点就在乎于如何表达每个时刻只能过1人这个信息把时间拆开,每个门和每个时刻组成一个二元组,那么通过这个二元组的流量最多原创 2016-04-10 07:33:30 · 817 阅读 · 0 评论 -
POJ2135 Farm Tour 无向图最小费用流
题意给你一个无向图,问你从1号节点到n号节点,再从n号节点返回1号节点,且中间不走重复路的最短路径。思路开始的简单思路肯定是,先求一个最短路,再删除其中的边,然后再跑最短路。问题是,这样贪心的话,会出现有两个条最短路,我们不知道选哪个好的情况~这样不行我们想,用最小费用流来求解。其实1->n和n->1对于无向图来说是没有区别的,那么我们是不是可以认为就是从1->n去两次,那么也就是流量为原创 2016-03-26 11:06:10 · 1758 阅读 · 0 评论 -
POJ3469 Dual Core CPU 最小割求解最小费用划分集合
题意两个核执行n个模块,每个模块在两个核上运行花费不同另外,m对模块如果在不同核上运行,会有额外的花费求解最小花费的划分方式思路最小费用划分成两个集合,是经典的题目类型,经常会用最小割求解可以想象,我们加入一个源点s,一个汇点t,那么求完最小割,从s出可以连到的点是在一个集合,不能连到的在另一个集合,每个边的容量对应费用,那么最小割就是一种最小花费的划分方式了对于这个题,网络中的点是模原创 2016-04-11 23:24:47 · 445 阅读 · 0 评论 -
POJ3281 Dining 最大流
题意n头牛,f种食物,d种饮料每头牛会有喜欢的食物和饮料每种食物和饮料只能供给一头牛牛可以喜欢多种食物和饮料问最多可以让多少头牛同时享受到喜欢的食物和饮料思路我们把食物,牛和饮料作为节点,把“喜欢”作为无向边这样就可以连出一个三阶段的图如果我们定向这些边,然后把食物和虚拟源点相连,饮料和虚拟汇点相连,边的容量为1,可以通过求解最大流来求解吗?这样显然还有问题,因为牛的节点其实只能原创 2016-04-02 22:25:31 · 323 阅读 · 0 评论 -
POJ3041 Asteroids 二分图最小顶点覆盖 Dinic求解最大流
题意一个n*n的矩阵,有k个位置有小行星,一炮可以摧毁一行或一列行星问最少需要多少炮可以摧毁所有行星思路把一行、一列看成节点,矩阵里的一个小行星看成一条边,如行星位置(r,c),则第r行的节点和第c列形成的节点间有一条边。然后我们的问题就变成了求解该图的最小顶点覆盖因为行和行的节点之间无边,列和列也一样,因此可以形成二分图,所以用最大流求解即可实现#include <cstdio>#原创 2016-04-02 21:41:00 · 877 阅读 · 0 评论 -
hdu5556 2015ACM合肥现场赛题 二分图最大独立集
题意在一个n*m的矩阵中,标记为’.’的为单独的一个点,标记为同一个数字的单元格和在一起是一个点,且是四联通的,为你这样建图之后它的最大独立集。n,m <= 10,数字数是0~9思路枚举0~9哪些放入独立集中,这样有2^10的复杂度在上述的基础上,建立二分图,具体来说,是数字格的单元格不作为二分图的点加入,是放入独立集的数字格周围的单元格不算做二分图里的点。剩余的点,i+j 是奇数的作为原创 2015-12-08 08:57:29 · 1219 阅读 · 0 评论 -
hihoCoder 1122 二分图最大匹配 最大流
题意求二分图最大匹配思路没有用匈牙利算法,而是试了试要带去的两个最大流模板。。就是加一个源点,一个汇点,源到二分图集合1的点加一个流量为1的边,集合1到集合2的边设置为流量1,集合2的点到汇点加入流量1的边实现模板1实现#include <iostream>#include <cstring>#include <cmath>#include <algorithm>#includ原创 2015-12-07 20:39:59 · 652 阅读 · 0 评论 -
POJ 1637 混合图欧拉回路判断 最大流模板
题意 给你一个混合图(有向边+无向边),判断是否存在欧拉回路思路 设d(i) = 出度(i) - 入度(i)。无向边随意定向,先并查集判连通,判di是否都为偶数,不是则不行。建图,加入s,t两点,对di>0的,s->i建边,最大流量为di/2,对dit建边,最大流量为-di/2。把随意定向的无向边,加入图中,最大流量为1.跑最大流,如果最后从s出的边都满流,则有欧拉回路。把那些流量为1的边原创 2015-04-01 16:29:41 · 428 阅读 · 0 评论 -
Codeforces 546E Soldier and Traveling 最大流 C#实现
题意在某个国家有n个城市,他们通过m条无向的道路相连。每个城市有一支军队。第i个城市的军队有ai个士兵。现在士兵开始移动。每个士兵可以呆在原地,或者走到和他所在城市直接相邻的城市判断移动之后,能不能使得第i个城市恰好有bi个士兵。若可以,需给出移动方式思路将源点与各个点相连,容量就是a[i]。将汇点与各个点相连,容量就是b[i]。将i与i+n相连,容量是inf,表示士兵可以留在自己的城市原创 2020-02-12 18:34:44 · 574 阅读 · 0 评论