![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论-网络流
文章平均质量分 81
KIJamesQi
这个作者很懒,什么都没留下…
展开
-
hdu1281(Hungary模板 + 枚举)简单
思路:题目说得很明显了,一行或一列中最多放一个车,,,给了一些可以放车的点,必然有个可以放最多个车的方案,设最多放ans个车;这样的话,有些点不放车,换成另外一个地方放车也是可以最多放ans个车的,但是有些点是必须放菜能使最后可以放ans个车,问有多少个第二种情况的点;既然问点有多少个,,,我就枚举每个点不放车时,这种时候可以放的车的最大数目max_num,如果不等于ans,必然这个点满足要求;这原创 2015-09-09 22:01:58 · 328 阅读 · 0 评论 -
hdu2732 Leapin' Lizards
题目的大意是有个n*m的grid,每个位置上都有柱子,柱子有一定的高度,有一群lizard想逃出这个grid,lizard一次最远可以跳d。grid的四边是安全的,每个柱子一次上面最多有一只lizard,lizard可以跳到一个可以跳到且上面没有lizard的柱子上面同时它原来所在的柱子的高度会-1,为0时就不能再往上面跳了。思路就是把柱子拆点,容量为其高度。lizard可以一次性从其跳到原创 2016-02-20 20:14:49 · 357 阅读 · 0 评论 -
hdu4289 Control最小割
一个城市交通图,上面有n个城市,m条双通道路,现在有个间谍要从s逃到t去,想要抓住他,但是只能在城市里面抓,不能在公路上,通过监控城市来实现抓捕,监控每个城市需要一定的费用,只要在所监控的城市出现了这个间谍就能抓住他,问抓住间谍的最小费用。就是不能让间谍到达t,可以转换成s到t的最小割,将城市拆点,容量为监控费用。/*************************************原创 2016-02-21 14:44:15 · 433 阅读 · 0 评论 -
hdu3416Marriage Match IV
图示有向的,A->B,每条路只能走一次,而且由于时间关系只能走最短的路径,点是可以多次经过的。求最多有多少条不同的枯井从A到B。抛开最后那个条件,其实就是最大流,加上条件之后呢就是先正反个求一遍最短路,然后枚举边,如果该边是最短路径上面的就添加到网络流的图中去,容量为1。/*****************************************Author :Craz原创 2016-02-23 14:59:00 · 294 阅读 · 0 评论 -
hdu3572Task Schedule
m个机器,n个任务,最多500分钟,每个任务只能在特定的时间段内被执行,可以分段之行。每台机器一分钟就1个工作量,第i个任务共需要p[i]个工作量。超级源点s和每个任务相连,容量为p,任务与对应的可执行的时间点相连,容量为1.每个时间点与汇点相连,容量为m。求maxflow != ∑p;/*****************************************Aut原创 2016-02-23 22:03:27 · 310 阅读 · 0 评论 -
hdu4280Island Transport
这题就是卡时间的,换成ISAP或时间更优的算法就好了。/*****************************************Author :Crazy_AC(JamesQi)Time :2016File Name :*****************************************/// #pragma comment(lin原创 2016-02-23 22:38:27 · 336 阅读 · 0 评论 -
hdu2883 kebab
有n个人分别在s[i]时间到烧烤摊去,然后t[i]离开,点了need[i]串烤串,每串需要cost[i]的时间烤,烧烤摊有个烤箱,但是一次最多烤m串。由于题目中说过,每个烤串是可以拆开来烤,也就是说假如一个烤串需要f分钟,那么我们可以将其拆成f分,每分钟烤其中的m分,这样的话花的时间就是f/m,如果其余数不为0的话就+1。这样一来,我们可以将所有的烤串全部拆分成最小的份数。这样的话超级源点就就原创 2016-02-24 23:07:58 · 494 阅读 · 0 评论 -
zoj2676 Network Wars (01分数规划)
一道经典的01分数规划问题,相关知识请看《最小割模型论文》。上面有完整的证明和解释。/*****************************************Author :Crazy_AC(JamesQi)Time :2016File Name :*****************************************/// #pra原创 2016-02-28 23:24:33 · 472 阅读 · 0 评论 -
poj3281Dining
传送门题意有N头牛,F种吃的,D种喝的。每头牛都有自己钟意的多种食物和饮料。但是每样只能选一个。每种食物和饮料对外只提供一次。比如A,B都喜欢C这种食物,如果A要了,B就不能再选用。问最多有多少头牛可以同时享用自己钟意的食物和饮料。分析建立超级源点s和汇点t。然后将牛拆点,放在中间如:s->F[i]->N[k]->N[k + N]->D[j]->t这样建立图,每条边的容量为1即可,然后就是最原创 2016-06-09 22:33:08 · 424 阅读 · 0 评论 -
poj3436 ACM Computer Factory
首先题目不是本英语渣渣能读懂的了,看的网上的解释。一个工厂里面有n台机器,每台机器能同时加工电脑的总数是有限的(点有容量),所以要拆点,在就是建立超级源点和汇点。每台电脑有p个零件,但是不是按照任意顺序添加上去就是可以的,有一定添加顺序关系,同时每台机器接收的需加工的电脑是有要求的,电脑上面那些零件必须有1,那些不能有0,那些可有可无2,而加工后电脑上面的零件有为1,无为0。两台机器可原创 2016-02-20 17:28:58 · 367 阅读 · 0 评论 -
poj1149 PIGS(最大流+建模)
这题重在怎建图。有n个顾客和m个猪圈,每个猪圈里面可以容纳无穷多的猪,但是开始的数量是一定的。顾客与汇点连边容量为其需求,猪圈与源点连边,容量为其初始值。然后就是对应的猪圈与顾客建边,容量为inf,这些都好像到。因为顾客有先后顺序,且某时刻某些猪圈打开了的话里面的猪的数量是可以调的(比如1,2,3这三个猪圈此时是开着门的,那么猪可以在这三个猪圈里面流动,但是总量是不变的)。如果前面原创 2016-03-04 00:00:42 · 401 阅读 · 0 评论 -
poj2455Secret Milking Machine(二分 + maxflow)
求出T条从1到n的路径,要求最长的单条边的长度最短,路径不能重复。第一感觉就是二分最大路径上限,然后建图,满足条件的边容量设为1,求最大流。/*****************************************Author :Crazy_AC(JamesQi)Time :2016File Name :********************原创 2016-03-02 21:57:15 · 331 阅读 · 0 评论 -
网络流SAP
终于决定开始学习网络流了=.=>那本书讲了很多关于求最大流的算法,然后我就只挑了一种传说中神奇的SAP算法学习。首先引入几个新名词:1、距离标号:所谓距离标号 ,就是某个点到汇点的最少的弧的数量(即边权值为1时某个点到汇点的最短路径长度)。设点i的标号为level[i],那么如果将满足level[i]=level[j]+1的弧(i,j)叫做允许弧 ,且增原创 2015-09-07 22:34:47 · 393 阅读 · 0 评论 -
hdu1532网络流(DINIC)
/*****************************************Author :Crazy_AC(JamesQi)Time :2015File Name :思路:最大流模板题,这个的点不是很多,只有200个,所以选择了用矩阵存图;再就是最大流的算法原理,寻找增光路径中的瓶颈边的最大流量cur_flow,然后递归每条边减去cue_f原创 2015-09-06 12:07:30 · 471 阅读 · 0 评论 -
hdu3416(SAP网络流)
思路:这天显然是要求从最短路走,然后就是问在边不重复走的情况下,有多少条从源点到汇点的路径,由于边不重复,所以就是每条边的可行流量为1,接下来就是网络流的问题了。但是由于开始不会SAP只会写DINIC,所以TLE了一天,最后学了下下SAP,,,勉强给过了这题,,,还是太弱了QWQ!!!/*****************************************Author原创 2015-10-16 22:29:09 · 600 阅读 · 0 评论 -
hdu3572(DINIC最大流)
思路:n个任务,m台机器,每个任务有起止时间,和需要的时间,每个机器同一段时间内只能执行一个任务,一个任务在同一时间内只能被同一机器执行,中途可被打断;每天每台机器是能完成一天的工作量,把这个工作量作为流量比较合理。题目中有三个量,时间,机器,任务。根据题意,每天我m台机器可以完成m天的任务量,所以图中只需要有任务,时间即可。源点和任务连边,容量p,任务和对应的时间连边,容量1,时间和汇点原创 2015-10-14 16:29:26 · 477 阅读 · 0 评论 -
hdu2883(DINIC最大流)
思路:同hdu3572一样的模型。有n个客人,没人点了ni个烤肉串,其中没串需要ti的时间来烤熟,但是可以不是连续的ti时间,只要烤得时间加起来有ti就好了,与3752不同的是时间范围有点大,需要离散化一下,所以变成了区间。对起始时间排序去重,那么可以得到top个时间点,也就是top个区间,那么对于每个客人的时间要求,只要客人的要求[s,e] 完全包含了第i个区间,那么该客人与这个区间连边,容量i原创 2015-10-14 17:54:04 · 394 阅读 · 0 评论 -
hdu1565方格取数(1) (最大权独立集)
这个就是一个求最大权独立集,以为这个图是一个二分图,所以可以转换成求对偶问题,也就是最小割。那么answer = ∑val[i][j] - 最小割。/*****************************************Author :Crazy_AC(JamesQi)Time :2016File Name :****************原创 2016-03-01 21:16:30 · 386 阅读 · 0 评论 -
hud1569方格取数(2) (最大权独立集)
同1565一样,只是数据大了点。/*****************************************Author :Crazy_AC(JamesQi)Time :2016File Name :*****************************************/// #pragma comment(linker, "/STAC原创 2016-03-01 22:28:19 · 497 阅读 · 0 评论 -
hdu4917 A simple brute force problem.(最大权闭合)
n个项目,m个技术,每个项目可以赚取x[i]元,每个技术需要花费y[i]元,完成每个项目有一定的技术要求,也就是说某些技术必须先完成才能去完成这个项目,而且技术相互之间也有要求的,某些技术必须先完成才能去完成其他的技术。显然的一点是可以看出来是最大权闭合问题,但是文中说的i必须先去j完成该怎么见图呢,开始我也建错了,样例都过不了,后来才仔细画了个图。n=1,m=2;x[1] = 10,原创 2016-03-01 23:27:40 · 475 阅读 · 0 评论 -
Lightoj-1330 Binary Matrix(网络流+构造)
题目链接 给定一个r*c的01矩阵,但是只给了每行和每列的和,问能不能构造一个01矩阵出来;如果能救出最小字典序的01矩阵。 首先判断所有行的和是否等于所有列的和,不等就直接impossible结束了。 然后建图就是套路了。建立一个超级原点vs=0,超级汇点vt=r+c+1; 然后是行号[1,r],列号[r+1,r+c]。w[vs][row] = row[i],w[col][vt]转载 2016-07-18 20:25:41 · 485 阅读 · 0 评论