
网络流
文章平均质量分 80
zxxxxzzz
这个作者很懒,什么都没留下…
展开
-
poj 1273 & hdu 1532 Drainage Ditches(最大流 )EK,dinic模板
第一发网络流纪念下~~~因为这里e和v都差不多,所以EK和dinic跑出来的时间差不多。纠结的是如何把邻接矩阵换成邻接表的..EK写法://沿此路径添加反向边,同时修改路径上每条边的容量#include#include#include#include#includeusing namespace std;typedef __int64 ll;const int原创 2014-12-25 15:41:43 · 631 阅读 · 0 评论 -
hdu 4292 Food isap+拆点
和poj3281完全一样的题。都是人(牛)拆成两个点跑一发最大流。蓝而在套模板的时候原模板有一个地方没改过来,整整交了一个小时的wa。那么猜一共交了多少发wa- -#include #include #include #include #include #include #include #include #include #include #include原创 2015-05-18 20:10:09 · 388 阅读 · 0 评论 -
Codeforces Round #304 (Div. 2) E - Soldier and Traveling 最大流 isap
题意:n个点m条边的一张图,每个点有初始状态a个兵,然后每个点能向相邻的点运送兵,问能不能有一种运法能使每个点到达最终状态b。其实没想清楚如何建图。。但是似乎把每个点拆成两个点,分别连超源超汇,然后跑一发最大流,跑完后边的流量就是最终答案。。总之很神奇的过了。。#include #include #include #include #include #include #in原创 2015-06-01 21:40:49 · 564 阅读 · 0 评论 -
hdu 4289 Control 最小割 isap
题意:n个点,每个点都有个权值,从起点到终点掐断某些点的,是起点到终点断流,且使被掐断的那些点的权值和最小。很明显的最小割裸题。这里需要拆点,将每个点拆成两个点u, u',然后这两个点建边,边权为掐断这个点的花费(即流过该点的容量大小就是其花费),然后u'到达v点的花费是inf,因为流过两点之间的流大小并不取决于连接这两点的边,而是点本身的花费。最后跑一发最大流即可#include #i原创 2015-05-19 21:40:05 · 367 阅读 · 0 评论 -
hdu 3605 Escape 多重匹配模板 (Hungary ) | 最大流
N个人M个星球,每个人都有适合居住的星球,每个星球有最大的容纳人数。求是否行星能满足住人。相比二分图求最大匹配,变化在link数组的应用,及对行星人数限制这个条件寻找增广轨,而这里的增广轨即 ”原先已经找好居住行星的人需要找新的行星“ 这一过程。跑一次Hungary即可。注意这里要用c++否则会T。神奇的输入挂可减很多时间#include#include#includeusing原创 2014-12-10 18:41:05 · 595 阅读 · 0 评论 -
hdu 4411 Arrest 费用流模板
题意:警察局在0点,里面有k个警察,要将1~n的贼窝一网打尽,这1+n个点都有距离,且要求抓 i 点的贼前保证已经抓光 比i小的贼。警察们最后要回到0点,问满足抓到所以的贼(题目保证可行)最少走的路之和建边参照yyn http://blog.youkuaiyun.com/u013368721/article/details/38781127#include #include #include原创 2015-07-26 15:43:24 · 316 阅读 · 0 评论 -
hdu 3416 Marriage Match IV dijkstra + isap
Problem DescriptionDo not sincere non-interference。Like that show, now starvae also take part in a show, but it take place between city A and B. Starvae is in city A and girls are in city B. Every原创 2015-07-14 13:57:41 · 305 阅读 · 0 评论 -
hdu 5294 Tricks Device 2015 Multi-University Training Contest 1 isap + dijkstra
题意:给出一张连通图,起点1终点n,问起点到终点有多少条最短路(边不重合),及最多删掉多少条边后还能通过最短路从起点走到终点。第一个问题直接在最短路的新图上跑一发最大流,第二个问题在跑最短路的时候记录下最短路中用到最少边的最短路即可。类似hdu 的3416#include #include #include #include #include #include #include原创 2015-07-21 20:03:19 · 342 阅读 · 0 评论 -
hdu 1853 Cyclic Tour /3488 Going Home 费用流判环
题意:给出一张有向图,判断每个点是否只属于一个环,并输出环的权(即组成环的边权值之和)参考http://blog.youkuaiyun.com/scf0920/article/details/36657717 拆点后建图,如果每个点都是环的一部分而且每个点只能用到一次的话,那每个点的初度入度都是1,这就可以利用网络流来解决,只要拆点令其流量为1,就限制了每个点只能用一次,每次左边的连到右边的,就相当于原创 2015-09-07 20:58:38 · 361 阅读 · 0 评论 -
zkw费用流模板(适用二分图)
hdu 1853 :#include #include #include #include #include #include #include #include #include #include #include ///cout << fixed << setprecision(13) << (double) x << endl;#include #include原创 2015-09-09 20:18:00 · 459 阅读 · 0 评论 -
hdu 1533 Going Home 费用流MCMF模板
题意:n个人和房子,每个人只能进入一个房子,且消费为两者曼哈顿距离,求n个人进入房子的最小花费。建超源超汇,超源向人连边,超汇向房子连边,然后人向房子连边,跑MCMF即可#include #include #include #include #include #include #include #include #include #include #include /原创 2015-09-07 16:01:01 · 387 阅读 · 0 评论 -
hdu 3395 Special Fish 最大费用流
题意:n条鱼可以相互攻击,得到的值为这两条鱼的异或值。每条鱼只能被攻击一次。求能得到的亦或者的最大值。很容易想到最大费用流。拆点,对每个 i ,连边(s, i, 1, 0), (i + n, t, 1, 0)。当 ij = 1 时, 对 i —> j + n 连边(i, j + n, 1, -(val[i] ^ val[j]))。由于题目的特殊性,当最大费用出现时, 并不一定是最大流, 而原创 2015-10-07 19:21:47 · 729 阅读 · 0 评论 -
hdu 3667 Transportation 费用流+拆边
题意:给出一张n个点m条边的图,从起点1送k个单位的货物到终点n,其中每条边有容量限制Ci,且每条边的花费与货物经过这条边的大小成ai 的系数关系,即运输x的货物,要ai * x * x的花费,求是否能够送到终点,且求最小花费。由于c才为5,很容易想到将其拆边,假设容量为3,则能依次得到容量大小为1,花费为1, 3, 5的三条边(1+5+3 = 3*3),然后跑一发费用流即可。#inclu原创 2015-09-23 15:00:29 · 484 阅读 · 0 评论 -
hdu 3081 Marriage Match II isap+二分+并查集
题意:n个女孩,n个男孩。每轮女孩各自找一个男孩配对,要求是:这个男孩之前没和她配对过,这个男孩没和她吵架过,这个男孩没和她的朋友吵架过(程序猿的写照233333...)。给出男女孩从未超过架的关系,和女孩间朋友的关系,问这种配对游戏最多能进行多少轮。很难想到要用网络流来做这道题。首先女孩之间的关系很明显可以用并查集处理,接下来处理女孩与男孩间的关系。注意到游戏如果能进行k轮,那么每个女孩就要原创 2015-05-28 20:47:40 · 370 阅读 · 0 评论 -
hdu 4183 Pahom on Water 最大流 isap
题意:n个二维坐标上的圆,起点频率为400,终点为789。圆相交时,频率小的可传播到频率大的,而传播完时频率小的圆会消失(S到T为频率从小到大,T到S从大到小)。问能不能从起点传播到终点,再从终点传播回起点。转换一下,其实就是从起点到终点的两条不想交路径。按照规则建流量1的边后求一发最大流即可,注意起点终点相交时是一定满足的#include #include #include #in原创 2015-05-27 19:19:03 · 415 阅读 · 0 评论 -
hdu 4240 Route Redundancy(dinic)
题意很别扭的的一道题,先是求最大流,再求所有可行流中的流量最大的那个流(因为该流的流量取决于该流上流量最小的那条边,正好是题意要求的),然后求其比值即可而dinic在dfs到汇点的时候正好也可以求出上述的流大小#include#include#include#include#includeusing namespace std;const int N = 100005;原创 2014-12-28 22:07:13 · 514 阅读 · 0 评论 -
网络流-最大流问题 ISAP 算法解释
网络流-最大流问题 ISAP 算法解释August 7, 2013 / 编程指南ISAP 是图论求最大流的算法之一,它很好的平衡了运行时间和程序复杂度之间的关系,因此非常常用。约定我们使用邻接表来表示图,表示方法可以见文章带权最短路 Dijkstra, SPFA, Bellman-Ford, ASP, Floyd-Warshall 算法分析或二分图的最大匹配、完美匹配和匈牙利算转载 2015-02-28 23:07:45 · 558 阅读 · 0 评论 -
hdu 3549 Flow Problem(最大流)
最大流模板题#include #include #include #include #include using namespace std;#define tt printf("ewgaergasergs\n");const int N = 10005;struct node{ int nxt, w, v;}e[N];int head[100], re[原创 2014-12-27 16:33:22 · 515 阅读 · 0 评论 -
isap sap 模板
拖拖欠欠终于学了isap。但是最近一直变量名打错是shenmegui,一周打错三次,,三个晚上就没了。模板抄自yyn- -详细的注释http://blog.youkuaiyun.com/u013368721/article/details/30490255,另外isap的大体思路来自这位大牛http://blog.sina.com.cn/s/blog_7c62590b0100qs7z.html如果之前原创 2015-04-01 23:59:04 · 734 阅读 · 0 评论 -
hdu 3572 Task Schedule(dinic)
最大流判断满流。这里的满流就是说是否对于题目要求的流量,当前的网络是否流过不溢出,简言之就是最大流>=题目给出的流量。用dinic的妥妥的T了。原因是对于走过的边重复走了。解决方法是,下一次回到这个节点时走的就是剩下没走过的边。然后get了一个新技能,当前弧的概念,也简言之就是走过的边不再走,但是实现的话,首先确定head不能变,就拿一个临时数组cur来充当head,而cur的变化正好解决了走原创 2014-12-29 22:07:23 · 540 阅读 · 0 评论 -
hdu 2883 kebab
题意:和hdu 3572相似,不同的是这里是n个人来,要从si时间开始,ei时间前结束,共有ni个肉串,每个肉串烤cost个单位时间。所以处理时候与hdu3572略不同的是讲一整个时间区间先离散,作为一个点,如果某人的起始和结束时间包含某个时间区间,说明那个人在这个区间里面能烤任意时间(当然前提是不超过这个区间长度,比如某段时间区间长度为10,那个人可以烤0~10的任意时间),所以将那个人的任原创 2015-04-07 21:55:56 · 400 阅读 · 0 评论 -
poj 3281 Dining isap + 拆点
题意:n每头牛,F份不同的食物, D种不同的水,每头牛都有自己的喜欢,问能最大情况下能被满足的牛数量。果果的网络流,关键是建图,这里将每头牛拆成两个点(算是技巧,学习下),然后设超源超汇,如下建图 st边权1: | | | | | | | | | | | 食物 i :1~F:原创 2015-05-11 21:11:55 · 400 阅读 · 0 评论 -
poj 1087 A Plug for UNIX isap
经典网络流模型。n种插座,m种电器和对应的插座,k种转换器(数量无限)(s1, s2表示s2插座可以转成s1插座)。建超源超汇,超源和插座连,流量1,电器和插座连,流量1,然后插座和对应电器连边,流量1,最后是通过转换器的插座之间连边,流量是inf(因为转换器本身就是inf的)然后模板一套即可#include #include #include #include #includ原创 2015-05-12 20:27:05 · 359 阅读 · 0 评论 -
poj 1459 Power Network isap
题意:n 个点,np个起点, nc个终点,m条边,求所有起点到终点的最大流建个超源超汇,+sscanf读入就是道isap的模板题了。(一直没用过sscanf突然发现好神奇0 0p:这里还有一个是边因为建双向,而终点往起点也有连边,一共就是N*N*2条边了#include #include #include #include #include #include #includ原创 2015-05-16 21:13:03 · 339 阅读 · 0 评论 -
hdu 2732 Leapin' Lizards 拆点最大流 isap
题意:n*m的矩阵有一些蜥蜴,每只蜥蜴最远能跳d(0~3)个单位,而每次起跳蜥蜴的站台会少一格血,最开始的时候蜥蜴保证站在有站台(站台初始血量为0~3)的地方。问最多有多少只蜥蜴能跳出矩阵。建超源超汇,超源连有蜥蜴的地方,容量为1。站台之间相互可达的连边,容量为inf,跳出矩阵的点与超汇连边,容量也为inf。这时候将所有站台的点拆成入点和出点,入点到出点连边,容量就是这个站台的血量(理解成能通原创 2015-05-26 17:27:30 · 454 阅读 · 0 评论 -
hdu 4240 Route Redundancy 最大流 isap
题意:给出n个点,redundancy ratio为maxflow/某条路径上的流量,题目求最小的redundancy ratio,也就是求起点到终点的maxflow / maxcap。在更新剩余网络的时候记录下maxcap即可#include #include #include #include #include #include #include #include #inc原创 2015-05-27 20:49:02 · 459 阅读 · 0 评论 -
hdu 4280 Island Transport isap果题
题意:给出n个二维坐标系上的点(其实就是n个点),最左的是起点,最右的是终点,且各只有一个,问从起点到终点的最大流。建边直接上模板即可#include #include #include #include #include #include #include #include #include #include #include #include using na原创 2015-05-17 22:03:13 · 379 阅读 · 0 评论 -
hdu 2686 Matrix / 3376 Matrix Again最大费用流
题意:给出一个矩阵,从左上角走到右下角,再从右下角走回左上角,往下走的过程中只能向右或下,往上走只能左和上,且往上往下的两条路不能重合,求经过矩阵的最大值。很明显的多线程dp,这里用费用流来做,往下走的过程中每个点拆点a, a',其中a到a‘建边,除了第一个点和最后一个点,都是费用为矩阵的值*-1,转换成求最大费用,流量为1,表示只经过这个点一次。而一趟来回可以看成是从第一个点到最后一个点的两原创 2015-09-09 19:42:20 · 375 阅读 · 0 评论