
ACM_最大流
文章平均质量分 80
京城一十三
你在凝视深渊的时候 深渊也在凝视着你
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu4560 不错的建图,二分最大流
我是歌手Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 287 Accepted Submission(s): 97Problem Description2013年一开始,一档音乐节目“我是歌手”就惊艳了大家一回。闲话原创 2014-04-13 18:49:55 · 579 阅读 · 0 评论 -
hdu3338 最大流
题意: 给你一个N*M的网格,上面有的有一些数字,要求填充数字,满足的规则是这样:答案不唯一,只要满足和的关系就可以,还有就是只能用1--9之间的数字填充,而且每一行或一列可以重复使用某个数字,观察每个要填充的点我们会发现,其实该点只于他所在的"行和"限制和所在的"列和"限制,我们可以把点分为三类,白色填充,左下半有数,右下半有数 ,(其他原创 2014-02-25 20:38:09 · 1176 阅读 · 0 评论 -
UVA11248 网络扩容(枚举割边扩充)
题意: 给你一个有向图,问你从1到n的最大流是多少?如果流量大于等于C那么直接输出一个串,否则输出只扩充一条边的流量就可以达到1->n大于等于C的所有边,如果扩充不了就输出另一个串。Sample Input 4 4 51 2 51 3 52 4 53 4 54 4 51 2 1原创 2014-10-17 17:45:04 · 472 阅读 · 0 评论 -
hdu3987 最小割边数
题意: 是让你求最小割之后问最小割的最少边数是多少,因为最小割不是唯一的,所以存在最小边数的问法。思路: 两个方法,一个是先一遍最大流,然后把割边全都改成流量1,其他的全都改成流量无穷就行了,第二个方法是比较经典的方法,就是把权值放大 *(E+1)+1,最后在对(E+1)取余就行了,这么干其实是同时跑了两遍最大流,只不过是原创 2014-10-17 15:17:41 · 540 阅读 · 0 评论 -
POJ2669不错的最大流 竞赛问题(枚举King的个数)
题意: 有n个人,任意两个人都比一次赛(一共比了n*(n-1)/2场),赢一场得到一分,最后的时候如果得分最高,或者是自己打败了所有比自己得分都高的人就算是King,给你每个人的最后得分,问最多有多少个人是King.思路: 一开始上了就贪心了一次,WA了,改了改之后又贪心了一次,还是没过,然后换思路(其实做这个题目是本着最大流来的),然后就去考虑最大流,最大原创 2015-02-06 17:02:55 · 737 阅读 · 0 评论 -
POJ1149 最大流经典建图PIG
题意: 有一个人,他有m个猪圈,每个猪圈里都有一定数量的猪,但是他没有钥匙,然后依次来了n个顾客,每个顾客都有一些钥匙,还有他要卖猪的数量,每个顾客来的时候主人用顾客的钥匙打开相应的门,可以调整猪的数量,然后卖给一些猪给这个顾客(卖多少自己决定),顾客走之后所有的们就都锁上了,问主人最多能买多少头猪。思路: 经典的建图,这已经是我第三次做这个题目了,大一,大原创 2015-02-06 16:32:21 · 650 阅读 · 0 评论 -
POJ1087DFS+匈牙利或者DINIC
题意: 有n个插孔,m个电器,q种转换器(转换器可以无限用),然后问你最多有多少个电器能充电。思路: 比较简单,就是在建图的时候要考虑下,我用了两种方法做的,一个是最大流,这个方法我的建图是这样,先给每个用电器虚拟出来一个点n,每个插座虚拟出来两个点(限流)m,然后给每个插座或者是插头的类型虚拟出来一个点,这样就ok了,建图是这样s ->原创 2015-02-06 16:34:27 · 475 阅读 · 0 评论 -
POJ3189二分最大流(枚举下界,二分宽度,最大流判断可行性)
题意: 有n头猪,m个猪圈,每个猪圈都有一定的容量(就是最多能装多少只猪),然后每只猪对每个猪圈的喜好度不同(就是所有猪圈在每个猪心中都有一个排名),然后要求所有的猪都进猪圈,但是要求所有的喜好度排名最低的和最高的差值的绝对值最小,输出这个最小的差值,就是是每个猪进猪圈后都会产生一个范围,就是最喜欢和最不喜欢(用排名的名次表示),然后把所有的范围放在一起,最小的端点个最大的端点的差的原创 2015-03-16 16:51:00 · 905 阅读 · 0 评论 -
POJ3228二分最大流
题意: 有n个点,每个点有两个权值,金子数量还有仓库容量,金子可以存在自己的仓库里或者是别的仓库里,仓库和仓库之间有距离,问所有金子都必须存到库里最大距离的最小是多少?思路: 比较简单,方法也不唯一,大体可以这样,先二分,然后用最大流或者匹配..来判断是不是满足就行了,我用的是二分最大流,具体代码在下面。#include#includ原创 2015-03-16 16:51:43 · 576 阅读 · 0 评论 -
POJ3498最大流,枚举终点,企鹅,基础最大流
题意: 有一n个冰块,每个冰块上都有一些企鹅,所有的企鹅要跳到一个冰块上去,但是由于起跳是的后坐力原因导致每个冰块最多条mi次,最后问你所有的企鹅都跳到一个冰块上去的那块冰块可以是哪一块,输出所有肯能的终点冰块。思路: 比较简单,我们可以枚举终点,首先把终点拿出来,剩下的点拆点,拆成两个,限流是最多的跳跃次数,然后起点连接每个拆了的点的左侧的点,终点就是当前原创 2015-03-16 16:51:42 · 540 阅读 · 0 评论 -
POJ1325二分匹配或者DINIC(最小路径覆盖)
题意: 有k个任务,两个机器,第一个机器有n个模式,第二个机器有m个模式,每个任务要么在第一个机器的一个模式下工作,要么在第二个机器的一个模式下工作,机器每切换一个模式需要重启一次,两个机器一开始都处于第0个模式下,问完成这k个任务至少切换多少次模式(任务完成顺序无所谓)。思路: 把每个任务的两个点连成一条边,然后就是说每个边肯定要先则这条边的两个端点中的原创 2015-03-16 16:38:23 · 468 阅读 · 0 评论 -
POJ1698 最大流或者匈牙利
题意: 一个人他有n个任务,每个任务都有一些限制: (1)只能在一个星期中指定的日子去做,比如周1 2 6啥的 (2)总工作量有几天,就是一共要工作几天 (3)必须在几周之内完成,就是你可以在能干活的日子里面选择那天去干活,但是不能超过规定的星期。然后问,是否可以不冲突的干完所有的活?思路: 题目一般,没啥难度,做法也很多,说下最大流的做法吧原创 2015-03-16 16:40:08 · 441 阅读 · 0 评论 -
POJ2391 Floyd+离散化+二分+DINIC
题意: 有n个猪圈,每个猪圈里面都有一定数量的猪(可能大于当前猪圈的数量),每个猪圈都有自己的容量,猪圈与猪圈之间给出了距离,然后突然下雨了,问多久之后所有的猪都能进圈。思路: 先跑一遍Floyd求出任意两点之间的最短距离,对于时间,也就是答案,我们可以二分去找,然后对于每次二分,我们可以用DINIC去判断是否满足要求,建图的时候记得拆点,一开始我感觉不用原创 2015-03-16 16:46:14 · 465 阅读 · 0 评论 -
POJ3614奶牛晒阳光DINIC或者贪心
题意: n个区间,m种点,每种点有ci个,如果一个点的范围在一个区间上,那么就可以消耗掉一个区间,问最多可以消耗多少个区间,就是这n个区间中,有多少个可能被抵消掉。思路: 方法不唯一,首先可以用贪心来做,看到网上说的都是优先队列的解法,我说下我的想法,我是直接sort排序后暴力(其实根本达不到n*m*l的时间复杂度),我先把所有老牛也就是区间按照上端点(**原创 2015-04-05 15:31:29 · 829 阅读 · 0 评论 -
POJ 3228 二分最大流
题意: 给你N个位置,每个位置都有金矿数量和仓库数量,然后位置和位置之间的距离给了出来,最后问你吧所有的金矿都放到库里面走的路径 最长的最短 是多少?思路: 比较简单的一个题,直接二分答案,然后用最大流是否满流来判断二分方向,还有就是建图的时候不用拆点什么的,一开始建图想麻烦了,都快敲完了才反应过来,具体看代码。原创 2014-10-03 18:15:59 · 490 阅读 · 0 评论 -
POJ 2396 构造矩阵(上下流)
题意: 要求构造一个矩阵,给你行和,列和,还有一些点的上下范围,输出一个满足题意的矩阵。思路: 这个题目很经典,这是自己看上下流后接触的第一道题,感觉很基础的一道题目,现在我们来分析下,如果这个题目是只给行和,列和,让我们构造矩阵应该很简单了,直接一遍最大流,然后判断是否满流,满流就把残余网络拿出来,整理下就是答案了,关键原创 2014-08-14 15:19:08 · 452 阅读 · 0 评论 -
自己对有上下界的网络流的理解
相对于一般的网络流,有上下界的网络流的某些边多出了流量下界的限制,如边u->v,上下界为high、low,如果有流经过这条边,这个流必须在[low,high]这个区间内。这类题目主要要求解决下面三个问题,“有源汇、无源汇的可行流”、“有源汇的最大流”、“有源汇的最小流”,注意这里所说的源汇是原网络中的源汇,分别记为s、t。 这类题目的难点在于下界的限制很难处理,我们将所有有下界限制的边中分离原创 2014-08-14 16:11:34 · 1137 阅读 · 0 评论 -
hdu3870 基于最短路的最小割
题意: 给你一个平面图,让你输出(1,1),(n ,n)的最小割..思路: 看完题想都没想直接最大流,结果TLE,想想也是 G,这样的图超时不冤枉,后来在网上看了题解,都说是什么论文题目,果断去看论文结果没看懂,后来看了下别人的理解,自己再画画图大概知道是什么意思了,果断是看着没有证明的证明容易懂啊.. 把最小割转换成最短路是有限制条件的,就是这个原创 2014-04-30 20:53:48 · 654 阅读 · 0 评论 -
hdu4280 最大流DINIC
题意: x最小的到x最大的点同一时间的最大运输量.思路: 裸的最大流,不解释,注意一点,记得加上防爆栈.#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#define N 300000using namespace std;s原创 2014-03-18 15:28:09 · 586 阅读 · 0 评论 -
hdu2435最大流最小割
hdu2435原创 2014-03-21 21:08:26 · 1024 阅读 · 0 评论 -
1669 DINIC+二分
题意: 给你一些名单,和每个名单可以放在哪个分组里,现在要求你把所有的人都分到一个他属于的分组(之一),然后问你分组中最多的那个人数最少是多少...思路: 二分最多的最少,然后用最大流去判断分组是否合理,建图如下 s 到 所有人连一条边 流量是1 所有分组 到 t 连一条边,流量是mid 然后把所有人和自己属原创 2014-04-10 16:21:37 · 549 阅读 · 0 评论 -
hdu3313 最大流找关键点,或者最短路找关键点.
题意: 给你一个有向图,然后给你起点和终点,问你从起点到终点有多少个关键点,如果当前的这个点删除了就无法从起点到终点,那么这个点就是一个关键点..思路: 有两种做法,我用的是最大流的,另一种是先跑最短路然后搜索,不会所以不介绍另一种,最大流的很容易理解,首先我们拆点建图,每个点拆成两个点,限流是1,然后起点和终点的限流是2,点于点之间是INF,跑一遍最大流,如果原创 2014-05-05 17:05:51 · 1123 阅读 · 0 评论 -
hdu 4309 最大流 + DFS
题意: 给以三种有向边 (1) 隧道,可以过无数人,也可以藏c个人。 (2) 路,只能过人(流量INF)。 (3)古桥,如果不修理可以过1个人,修理可以过无数个人,但是要花费c那么多钱 同时还给了每个城市的人数,要求是城市的人去隧道里躲避,问你在躲避人数最多的前提下费用最小,费用就是修理古桥所用的钱。思路: 先看古桥原创 2014-06-16 20:40:18 · 542 阅读 · 0 评论 -
hdu4807枚举费用流
题意: 给你一个有向图,每条边上都有每一时刻的最大流量,有k个人在点0,他们要去点n-1,问你最晚到达的那个人最快要多久。思路: 这个题目做了很多次,用过费用流,也用过最大流,结果都不行,怎么说的,这道题目用该是借助费用流的找新路径去枚举,可以说是费用流变形吧,首先我们一定要明白一点,就是时间的影响,单纯的最大流如果在时间的基础上考虑没什么意义,而费用流呢,我们原创 2014-07-29 14:05:42 · 1078 阅读 · 0 评论 -
hdu4888 最大流(构造矩阵)
题意: 让你构造一个矩阵,满足每一行的和,和每一列的和都等于他给的,还要判断答案是否唯一,还有一点就是矩阵内所有的数字都是[0,k]范围的。思路: 这个题目看完就让我想起了hdu3338,那个题目做了好久啊!哎!对于构造矩阵还是很简单的,我们构造两个点起s点和终点e,建图如下:s -> 所有行 流量是当前行和所有行原创 2014-07-30 17:45:44 · 555 阅读 · 0 评论 -
POJ1149 PIGS(最大流)
题意: 有一个人,他有m个猪圈,每个猪圈里面有一定数量的猪,但是每个猪圈的门都是锁着的,他自己没有钥匙,只有顾客有钥匙,一天依次来了n个顾客,(记住是依次来的)他们每个人都有一些钥匙,和他们想买猪的数量,他们可以用自己的钥匙打开猪圈,最后卖给他多少是你自己决定的,当顾客打开它能打开的这几个猪圈的时候你可以调整打开的这几个猪圈里面的猪的数量,等他走了,猪圈又被锁上了,就这样,最后问你最原创 2014-08-07 15:08:07 · 450 阅读 · 0 评论 -
poj2112 二分最大流+Floyd
题意: 一个农场主有一些奶牛,和一些机器,每台机器有自己的服务上限,就是一天最多能给多少头奶牛挤奶,给你任意两点的距离,问你让所有的奶牛都被挤奶时,奶牛于机器最远距离的最近是多少。思路: 求最远的最近,二分,然后用最大流去判断是否所有的奶牛都被挤奶了,简单题目,不多解释了,还有注意一点就是二分前记得Floyd一下,他没说给的原创 2014-08-07 16:21:17 · 466 阅读 · 0 评论 -
hdu4971 流-最大权闭包
题意: 给了一些任务,然后给了一些完成某些任务的限制,然后又给了限制之间的拓扑关系,最后问你最大收益。思路: 很直白,就是流的一个应用,最大权闭包,没涉及到什么想法的地方,建图也不坑,直接说建图吧,s - 所有任务 流量是 任务价值所有限制 - t 流量是 限制代价a -> b 流量 INF a限制的拓扑关系在b的后面原创 2014-08-24 10:52:22 · 561 阅读 · 0 评论 -
hdu4975 行列和构造矩阵(dp判断唯一性)
题意: 和hdu4888一样,只不过是数据加强了,就是给你行列的和,让你构造一个矩阵,然后判断矩阵是否唯一。思路: 构造矩阵很简单,跑一次最大流就行了,关键是判断矩阵的唯一性,之前的那个4888我用的是深搜找环过的,这个题目就TLE了,数据加强了,对于判断矩阵的唯一性我们可以这么想假如某一行的i列和j列满足 i列的这个原创 2014-08-24 12:52:00 · 656 阅读 · 0 评论 -
hdu4940 有上下界的无源可行流判断
题意: 给你一个强连通图,然后问你是否可以找到任意满足条件的集合S,S是非空集合,T是S的补集,满足sum(D[i ,j]) 思路: 无源汇上下流可行流判断问题,首先题目给的图是一个强连通图,为了方便理解,我们假设这个图只有两个点,a,b,那么肯定也只有两条边,a->b ,b->a,那么我们可以直接建边a->b(下界 D 上界 B + D) b->a(下界 D原创 2014-08-14 15:10:47 · 614 阅读 · 0 评论 -
poj2987最大权闭包(输出最少建塔个数)
题意: 公司要裁员,每个员工被裁掉之后都会有一定的收益(正或者负),有一些员工之间有限制关系,就是裁掉谁之前必须要先裁掉另一个人,问公司的最大收益和最大收益前提下的最小裁员人数?思路: 收益有正、有负,员工之间有限制关系,那么是不是瞬间就想到了杭电的那个通讯塔的那么题目,虽然那个是最大点权独立集,而这二个是最大权闭包,但是我感觉两者想法一样,只不过中间是通原创 2015-06-04 16:38:57 · 1055 阅读 · 0 评论