
网络流
文章平均质量分 81
Aerolite坠落
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #284 (Div. 1) C. Array and Operations (最大流)
题目地址:http://codeforces.com/contest/498/problem/C 分别分解出每个数字的质因子,然后第奇数个数字的质因子在左边集合,偶数个数字的质因子在右边集合,建立源点和汇点,然后根据每个数字含有的质因子的个数建边,跑一遍最大流即可。 代码如下:#include <iostream>#include <string.h>#include <math.h>#i原创 2015-08-17 21:00:37 · 913 阅读 · 0 评论 -
POJ 1698 Alice's Chance(网络流之最大流)
题目地址:POJ 1698水题。。将每部电影与它可以演的那一天连边就行了。建二分图。用二分最大匹配也完全可以做。代码如下:#include #include #include #include #include #include #include #include #include #include #include using namespace std;c原创 2014-08-18 15:39:02 · 1033 阅读 · 0 评论 -
POJ 3469 Dual Core CPU(网络流之最小割)
题目地址:POJ 3469建图思路:建源点与汇点,源点与CPU1相连,汇点与CPU2相连,对共享数据的之间连无向边。我的ISAP过这题还是毫无时间压力的嘛。。。代码如下:#include #include #include #include #include #include #include #include #include #include #includ原创 2014-08-18 16:38:02 · 881 阅读 · 0 评论 -
ZOJ 3792 Romantic Value(网络流之最小割)(找割边)
题目地址:ZOJ 3792最小割做的太少。。这题很明显是找割边。找割边就是判断正向弧是否是0.如果跑完一次最小割后正向弧流量为0的话,那就说明这个边为一条割边。但是找到了割边后再怎么办呢。。中午睡觉的时候突然来了灵感。。再利用这些割边求一次最大流不就行了。。把割边的流量都设为1,其他的都为正无穷。那最后的流量就是最少需要的割边了。然后计算就可以了。代码如下:#include #inc原创 2014-08-18 15:12:03 · 1454 阅读 · 0 评论 -
HDU 3452 Bonsai(网络流之最小割)
题目地址:HDU 3452最小割水题。源点为根节点,再另设一汇点,汇点与叶子连边。对叶子结点的判断是看度数是否为1.代码如下:#include #include #include #include #include #include #include #include #include #include #include using namespace std;原创 2014-08-19 09:25:48 · 1122 阅读 · 0 评论 -
费用流mcmf模板2.0版
题目地址:HDU 3488今晚才发现以前的费用流模板居然是错的。。。。。。。有漏洞。。。。但是居然都AC了那么多题。。想想也是。。做的费用流也不多,而且都是流量为1的,这个漏洞是不会影响的。因为以前在每次最小费用增广后找到的最小流量是经过的所有路的最小流量,不一定是可以到达汇点的最小流量。。但是如果流量都为1的话。。那只要边没有全部流过,那肯定最小流量会是1.而如果已经全部流过的话。。那也没意原创 2014-08-05 22:53:09 · 1476 阅读 · 0 评论 -
POJ 2584 T-Shirt Gumbo(网络流之最大流)
题目地址:POJ 2584大水题。。不多说。。sha原创 2014-07-30 21:07:12 · 935 阅读 · 0 评论 -
POJ 1149PIGS(网络流之最大流)
题目地址:http://poj.org/problem?id=1149这题重点在于zenya原创 2014-06-20 20:10:19 · 873 阅读 · 2 评论 -
HDU 4280Island Transport(网络流之最大流)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4280这个题是一个纯最大流模板题。。就是用来卡时间的。。还好我会isap算法。。但是坑爹的是一直WA,最后加了个输入优化就过了。。。(仅仅是把输入改了改而已。。)至今不知道为什么。。请好心的看到此博客的大神赐教。。代码如下:#include #include #include #inc原创 2014-06-19 19:28:56 · 1419 阅读 · 1 评论 -
NEU 1458 方格取数(网络流之费用流)
题目地址:NEU 1458跟杭电上的那两个方格取数不太一样。。这个可以重复,但是取和的时候只能加一次。建图思路基本一会就出来。同样的拆点,只不过这题需要再拆个边,其中一条费用0,另一条费用为那个点处的值。流量都限制为1.然后剩下的都跟杭电上的那两个差不多了。因为把数组开小了WA了好几发。。(我前面居然还专门检查了一下数组大小,居然当时还认为没开小。。。对自己无语。。)代码如下:#inc原创 2014-08-03 23:08:41 · 1044 阅读 · 0 评论 -
HDU 1565 && HDU 1569 方格取数 (网络流之最小割)
题目地址:HDU 1565 HDU 1569刚开始接触最小割,就已经感受到了最小割的博大精深。。。这建图思路倒是好想。。因为好多这种关于不相邻的这种网络流都是基本都是这样建图。但是感觉毫无道理可言。。。看了题解后才明白这样做的意义。下面是题解中的说法。大概是这样分析的,题义是要我们求在一个方格内取出N个点,使得这N个独立的(不相邻)点集的和最大。我们可以将问题转化为最小原创 2014-07-26 22:47:20 · 999 阅读 · 0 评论 -
HDU 2686 && HDU 3376(网络流之费用流)
题目地址:HDU 2686 HDU 3376这两道题目除了数据大小外是一样的。前者只有30*30,但是后者却成了600*600。。本来以为前者代码用到后者会超时,迟迟没敢交,但是感觉能用费用流的话也只能这么做了,于是改了改数组大小就交上去了。还真没超时。。这题又是一道关于来回最短路的。最大费用可以把费用改成相反数,最后再转成相反数就是最大费用了。建图思路是拆点,限制每个点只原创 2014-07-26 20:25:34 · 920 阅读 · 0 评论 -
POJ 3189 Steady Cow Assignment(网络流之最大流+二分构图)
题目地址:POJ 3189我晕啊。。。飞快的把白天的任务完成又有什么用。。。节省下来的时间活生生的被我的手残给全浪费掉了。。。又调了一整天,问题居然是一个地方的n和m写反了!!!反思。。反思。。。面壁去。。。这题就是二分区间,然后枚举区间位置。然后建图就行了。不多说。。代码如下:#include #include #include #include #include #i原创 2014-07-31 22:26:00 · 910 阅读 · 0 评论 -
HDU 4183Pahom on Water(网络流之最大流)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4183这题题目意思很难看懂。。我看了好长时间也没看懂。。最终是从网上找的翻译。。我就在这翻译一下吧。意思大约是:有多个点,每个点给出坐标与半径,加入两个点相交,就可以从这两个点走。题目要求先从起点到终点,再从终点回到起点。从起点到终点的过程中,只能从频率小的走到频率大的点(前提是两点相交),从终原创 2014-06-17 20:49:15 · 1707 阅读 · 0 评论 -
POJ 3422 Kaka's Matrix Travels(网络流之费用流)
题目地址:POJ 3422方法是对每个点i拆点成i'和i'',然后对每个i'和i''连一条费用为该点值,流量为1的边,再连1条费用为0,流量为k-1的边。然后对每个点与右边下边相邻的点连边,流量均为INF,费用均为0。需要再建一源点与汇点,对于k次只需要在源点与汇点处进行限制即可。代码如下:#include #include #include #include #inclu原创 2014-08-20 15:57:52 · 1098 阅读 · 2 评论 -
POJ 2516 Minimum Cost(网络流之费用流)
题目地址:POJ 2516我晕啊。。。这题一上来就想到了对每种货物分开求。。但是马上就放弃了。。感觉这样求50次费用流太耗时。。后来就果断拆点,拆了好长时间,一直TLE。。即使降到了2600个点也TLE。。然后又想起了这个分开求的方法,又突然觉得100个点的费用流几乎不费什么时间。。最多也只是求50次而已,还是可以试试的。。于是一试居然还真过了。。。说到这里,思路应该已经知道了吧。就是对每原创 2014-08-20 15:50:18 · 1009 阅读 · 0 评论 -
HDU 2448 Mining Station on the Sea(费用流)
题目地址:HDU 2448求n次最短路,将n艘船到各港口的最短路求出来,然后用最短路当费用,跑一次费用流。代码如下:#include #include #include #include #include #include #include #include #include #include #include using namespace std;cons原创 2014-09-30 10:13:24 · 1506 阅读 · 0 评论 -
HDU 5045 Contest(费用流)
题目地址:HDU 5045终于在比赛中用网络流A了一道题。。。刷了那么多网络流,终于用到一次了。。虽然题目很简单,但是还是要纪念一下下。。。我这题的思路就是求m/n次费用流,每n个算作同一轮,对这同一轮的求最大费用流。建图就很简单了,最简单的二分图模型。代码如下:#include #include #include #include #include #include原创 2014-09-27 19:44:08 · 1322 阅读 · 0 评论 -
HDU 4971 A simple brute force problem.(最小割---最大权闭合)
题目地址:HDU 4971比赛的时候还不会最大权闭合,当时还跟队友讨论了好长时间费用流和DP。。现在看来就是一最大权闭合水题。。。建图思路:源点连工程,权值为利润,汇点连科技项目,权值为花费,然后对有依赖性的连有向边。用正权值和减去最小割就是答案。#include #include #include #include #include #include #include原创 2014-09-03 10:54:16 · 1132 阅读 · 0 评论 -
HDU 3917 Road constructions(最小割---最大权闭合)
题目地址:HDU 3917这题简直神题意。。。题目本身就很难看懂不说。。即使看懂了,也对这题意的逻辑感到无语。。。不管了。。就按照那题意上说的做吧。。。题意:给你n个城市,m个公司,若干条可能要建设的道路,每条有向道路需要花费,还有负责建设这条道路的公司编号,如果要建设ab道路,那么负责这条道路的公司需要建设完它负责的所有道路,而且对负责道路bx(x任意)的公司同样要求,以此类推。每个原创 2014-09-02 19:59:07 · 988 阅读 · 0 评论 -
HDU 3996 Gold Mine(最小割---最大权闭合)
题目地址:HDU 3996很简单的最大权闭合题,只不过有个小小的坑点。。那就是需要用int64。。。。但是为什么我交上去返回的TLE。。。。建图思路:分别对每一层的金矿都编号。方便处理。然后源点连接正权点,汇点连接负权点,每个点连接它所依赖的。用正权之和减去最大流即为答案。代码如下:#include #include #include #include #include原创 2014-09-02 21:02:43 · 1033 阅读 · 0 评论 -
HDU 3061 Battle(最小割----最大权闭合图)
题目地址:HDU 3061多校中遇到的最小割的最大权闭合模型花了一上午时间终于看懂啦。最大权闭合图就是将一些互相有依赖关系的点转换成图,闭合图指的是在图中的每一个点的后继点都是在图内的。还要明白简单割的概念,就是指所有的割边都与源点或汇点相连。然后让源点与正权点相连,汇点与负权点相连,权值均为其绝对值,有依赖关系的点连一条有向边,如果a必须在b的基础上,那么就连一条a->b的有向边,权原创 2014-09-02 16:13:16 · 1021 阅读 · 0 评论 -
HDU 3879 Base Station(最小割---最大权闭合)
题目地址:HDU 3879无语。。。对这题的数据范围无语。。刚上来一看,建图思路很快出来了,但是一看数据范围。。需要5w个点。。于是我以为需要缩点或是别的优化。。于是又想了会怎么优化,感觉没法优化了。。于是上网一搜。。还真都是就这么过了。。。过了。。过了。。于是,我就按刚上来那个思路敲,结果203ms过了。。。我真怀疑出题者是不是不小心把数据范围多写了几个0.这要放在比赛中。。肯定不敢这么写。原创 2014-09-02 16:59:56 · 1063 阅读 · 0 评论 -
HDU 3395 Special Fish(费用流)
题目地址:HDU 3395刷了几道白书和CF上的非算法题,感觉智商越来越接近负数了。。。还是先刷几道简单题缓缓。。这题很简单,二分图模型,用费用流也可以,用KM也可以。不过需要注意的是这里是最大费用流,并不是最大费用最大流,区别在于是否是最大流,这题可以不是最大流,所以要当费用开始减少的时候停止继续流,来保证费用是最大的。代码如下:#include #include #incl原创 2014-09-12 17:23:36 · 1091 阅读 · 0 评论 -
POJ 1087 A Plug for UNIX(网络流之最大流)
题目地址:POJ 1087不知道是谁把这题化为了二分最大匹配的专题里。。于是也没多想就按照二分图的模型来建的(虽然当时觉得有点不大对。。。)。后来发现二分最大匹配显然不行。。有权值。。直接来个最大流多方便。。然后一直WA。。后来仔细想了想。。这根本就不能建二分图啊。。。。这题跟二分图一点关系都没有。。。。这题的建图思路是让源点与每一个设备的插座类型连边,让汇点与每一个插座连边。然后用flo原创 2014-08-17 22:37:28 · 1029 阅读 · 0 评论 -
HDU 3315 My Brute(费用流)
题目地址:HDU 3315这个题的思路是自己想出来的,自我感觉挺巧妙的。。。(大牛勿喷。。。)对大胆建图又多了一份信心。具体思路是构造一个二分图,Si连源点,Xi连汇点,流量都是1,费用0.然后当Si可以赢Xj的时候,就对这两人连一条边,费用值为-Vi*1000,如果i==j的话,费用值就再减1,因为题目要求尽量不改变原先的顺序,所以说应该尽量让序号相同的对打。而费用值减1的话,会优先考虑原创 2014-08-23 22:31:41 · 1280 阅读 · 0 评论 -
POJ 3680 Intervals(费用流+离散化)
题目地址:POJ 3680这题的建图真心想不出来。建图思维还是不够开阔,不够大胆。这题要先对坐标进行离散化。可以用左边的点发出一条到右边的点的边,容量为1,费用为负的权值。然后从左往右将依次将相邻的两个点都连起来,权值为0,容量为k,也就是说,如果选了这个区间,就会从费用为负数的边流过去,否则,就是从这个费用为0的边流过去。然后建立一个超级源点与最左边的点相连,权值为0,容量为k,这样就保原创 2014-08-23 20:50:28 · 963 阅读 · 0 评论 -
HDU 4888 (杭电多校#3)Redraw Beautiful Drawings(网络流之最大流)
题目地址:HDU 4888自己之所以弱真心是态度的问题,以后不能再偷懒了!!那次这个题一直没补,结果这次又遇到了。。还有这次遇到的最小割权闭合问题,也一直没刷,所以这次遇到了也不会,连是最小割都不知道!!(突然想起来前面还有好多题拖到现在也没做。。。T U T)以后绝不能再拖拉了!这题的建图是很容易的,主要是判断唯一性不好判断。这里是用的dfs找环来判断是否唯一,因为假如有环的话,说明环原创 2014-08-21 19:57:54 · 1062 阅读 · 0 评论 -
HDU 4975 (杭电多校 #10 1005题)A simple Gaussian elimination problem.(网络流之最大流)
题目地址:HDU 4975对这题简直无语。。。本来以为这题要用什么更先进的方法,结果还是老方法,这么卡时间真的好吗。。。。比赛的时候用了判环的方法,一直TLE。。后来换了矩阵DP的方式,加了加剪枝就过了。。无语了。。代码如下:#include #include #include #include #include #include #include #include #原创 2014-08-21 22:55:59 · 1787 阅读 · 2 评论 -
HDU 3667 Transportation(网络流之费用流)
题目地址:HDU 3667这题的建图真是巧妙。。。为了保证流量正好达到k,需要让每一次增广到的流量都是1,这就需要把每一条边的流量都是1才行。但是每条边的流量并不是1,该怎么办呢。这个时候可以拆边,反正c最多只有5,拆成5条流量为1的边。但是这时候费用怎么办呢,毕竟平方的关系不能简单把每一条边加起来。这时候可以把拆的边的流量设为1,3,5,7,9.如果经过了3个流量,那就肯定会流1,3,5,费原创 2014-07-27 12:55:33 · 1036 阅读 · 0 评论 -
POJ 2135 Farm Tour(网络流之费用流)
题目地址:POJ 2135来回走一遍可以看成从源点到汇点走两遍。将每个点的流量设为1,就可以保证每条边不重复。然后跑一次费用流就行了。当流量到了2之后停止,输出此时的费用。#include #include #include #include #include #include #include #include #includeusing namespace std;原创 2014-07-26 17:20:41 · 973 阅读 · 0 评论 -
POJ 3228Gold Transportation(二分+最大流)
题目地址:POJ3288这个题跟之前的一道题混了,感觉是一样的,所以连想都没怎么想就拆点然后求最短路然后二分求最大流了。结果连样例都不过,还一直以为又是哪里手残了。。结果看了看样例,手算也确实不对,,。后来就没拆点,直接在原点上建的图,结果样例就过了。。然后提交1次AC。。。后来仔细的想了想,这题是问每一段路的最短的,而不是整个的最短的。所以说不应该拆点。而我混的那道题(poj2391)是原创 2014-07-02 00:23:38 · 1158 阅读 · 0 评论 -
HDU 3605Escape(缩点+网络流之最大流)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3605本来打算昨天写两道题的,结果这个题卡住了,最后才发现是最后的判断条件出错了,判断满流的条件应该是与n的比较,竟然写成与所有星球总容量的比较了。(最近大脑短路。。)这题也不是完全自己想的,没想到缩点这一技巧,由于n的数据范围太大,普通的建图方法会超时超内存,需要缩点,因为对于每个点来说,一共原创 2014-06-30 12:42:54 · 1658 阅读 · 0 评论 -
POJ 2455Secret Milking Machine(二分+网络流之最大流)
题目地址:POJ2455手残真浪费时间啊。。又拖到了今天才找出了错误。。每晚两道题不知不觉又变回了每晚一道题、。。sad。。第一次在isap中忘记调用bfs,第二次则是遍历的时候居然是从1开始遍历的。。。sad。。。这题思路倒是很简单,就是有一个比较坑的地方,就是这里的重边要当两条边来用,以前受最短路什么的影响,直接把慢的删了,很明显不对。。。这里的两条重边都是可以走的。建图思路是原创 2014-07-01 11:30:53 · 1472 阅读 · 0 评论 -
UValive3268 Jamie's Contact Groups(二分+最大流)
题目地址:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1269Jamie is a very popular girl and has quite a lot of friends, so she always keeps a v原创 2014-06-29 23:15:39 · 2276 阅读 · 0 评论 -
HDU 2883kebab(网络流之最大流)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2883对网络流的信心正在man原创 2014-06-28 23:42:28 · 819 阅读 · 0 评论 -
POJ 2391Ombrophobic Bovines(二分+最短路+网络流之最大流)
题目地址:http://poj.org/problem?id=2391这个题WA了一晚上,原因是数组开小了,然后又TLE了一天,原因是数组改的过大了。。。。不多说什么了。。。思路不难,建图也不难,二分时间,然后把每个田地之间的最短距离用floyd最短路求出来。然后建立一个源点与汇点,将田地拆分成两个点,在距离之内的进行连边,要单向连边。然后将源点与田地相连,权值为每个田地的牛的数目,再把另原创 2014-06-28 17:15:07 · 997 阅读 · 0 评论 -
ZOJ 3348 Schedule(map运用+网络流之最大流)(竞赛问题升级版)
题目地址:ZOJ 3348仍然是一道竞赛问题的网络流问题,但是这道题再用上次的竞赛建图方法就不行了,5000场比赛,明显会超时,于是需要换种建图思路了。上一道经典竞赛问题戳这里上一道的胜负转换是利用专门给比赛建一个点,通过对比赛双方的流向来控制胜负关系,这里的建图方法更加巧妙(膜拜想出这个方法的大牛。。。),是先假设其中一方获胜,用mp[a][b]来表示a赢b的次数,将a与b连边,权值为m原创 2014-07-19 12:02:59 · 1232 阅读 · 0 评论 -
HDU 3277Marriage Match III(二分+并查集+拆点+网络流之最大流)
题目地址:HDU 3277这题跟这题的上一版建图方法差不多,只不过需要拆点。这个点拆的也很巧妙,既限制了流量,还只限制了一部分,以前一直以为拆点会全部限制,原来也可以用来分开限制,学习了。建图方法为:建一源点与汇点,将女孩进行拆点,拆成i和i+n,将i与源点连边,权值为mid,将i与i+n连边,权值为k,再将男孩与汇点连边,权值为mid,这时可以配对的就将i与相应的男孩连边,权值为1,不能原创 2014-07-17 21:09:54 · 1078 阅读 · 0 评论 -
HDU 3046Pleasant sheep and big big wolf(网络流之最小割)
题目地址:HDU 3046最小割第一发!其实也没什么发不发的。。。最小割==最大流。。入门题,但是第一次入手最小割连入门题都完全没思路。。。sad。。对最小割的本质还是了解的不太清楚。。这题就是对每两个相邻的格子的边界都要进行加边,然后求最大流就OK了。RE了好长时间,注意遍历加边的时候要从1开始,而不是0开始,因为0是源点的。。。(也许只有我才犯这种错误吧。。。)建图不多说了。。原创 2014-07-16 19:30:52 · 985 阅读 · 0 评论