
ACM_网络流
Rotepad
语言表述能力不行,在前面解释的不清,但是在代码中基本上每一个难懂的语句都在旁边有注释进行解释。
因为个人习惯带着代码去看题解,所以习惯把题解切入代码中,所以希望大家不要看到没什么解释就不看了,实际上后面的代码写的很详细
展开
-
BZOJ-1797-Mincut 最小割(网络流最小割+联通块Tarjan)
题目:BZOJ-1797题解:关于最小割可以去这里看一下,对话形式的解释,讲的挺清楚的。对于本题:1.最小路劲的切断方案:就是指最小割,包不包括这条边就是指最小割的方案中有没有一个包含这条边2.通络流大小==最小割大小,一个网络流值对应多种最小割方案3.Dinic算法跑完后求出网络流值,会把图中所有的满流的边删掉,最小割一定是由满流的边组成,但不是任意的几个满流的边都能4.组成最小...原创 2019-08-13 17:43:40 · 254 阅读 · 0 评论 -
POJ-1149-PIGS(网络流最大流+神奇的建图)
题目:戳戳戳题意:有N个顾客,有M个猪圈,每个猪圈有一定的猪,在开始的时候猪圈都是关闭的,顾客来买书,顾客打开某个猪圈,可以在其中挑选一定的猪的数量,在这个顾客走后,可以在打开的猪圈中将某个猪圈的一些猪牵到另外一个打开的猪圈,然后所有的猪圈会关闭,这样下一个顾客来了继续上面的工作第一行是两个整数:M和N(1≤M≤1000,1≤N≤100)M是猪圈的数目,N是顾客的数目第二行是M个整...原创 2019-08-10 20:24:29 · 251 阅读 · 0 评论 -
POJ - 1273-Drainage Ditches (网络流--最大流模板题)
题目:戳我呀题解:网络流最大流模板题,想了解网络流模板可以去这里学习一下代码:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<set>#include<queue>#include<ve...原创 2019-08-10 20:26:55 · 197 阅读 · 0 评论 -
ZOJ - 2532 - Internship(网络流)
题目:ZOJ-2532题意:CIA公司想采用新技术升级网络,在实验测试阶段,他们想升级其中的一段网络以便观察新技术在多大的长度上提升网络的性能,你作为实习生的任务是调查那一段网络能提高CIA总部的宽带。题解:一种比较好想到的思路就是枚举每条边,将容量增加1,看这样最大流和之前的是否相等,但这样复杂度太高。 于是不妨换种思路,假设现在满流了,我们会考虑增加哪些边的容量呢?显然是满流...原创 2019-08-23 23:25:55 · 290 阅读 · 0 评论 -
HDU - 3416 - Marriage Match IV(网络流+最短路Dij)
题目:HDU-3416题意:有t组数据,n个点,m条边的图。从s走到t点,只走最短距离,每条路只能走一次。问走最短路总共有多少种方案题解:先用最短路算法求出从起点到各点的距离dist,然后根据dist的值建立新的图,边权为1,套用Dinic模板求起点到终点的最大流即可。但是这里最短路算法最好用SPFA遍历所有边才好,如果用Dij+优先队列需要把vis[i]的访问标记删掉,因为这是求从s到x...原创 2019-08-20 19:34:34 · 209 阅读 · 0 评论 -
POJ - 1815 - Friendship(网络流-拆点建图)
题目:POJ-1815题意:在一个给定的无向图中至少应该去掉几个顶点才干使得s和t不联通。题解:假设s和t直接相连输出no answer。把每一个点拆成两个点v和v'',这两个点之间连一条权值为1的边(残余容量)v和v''各自是一个流进的点。一个流出的点。依据求最小割的性质。权值小的边是可能被选择的(断开的)。加入源点st=0和汇点en=2*n+1,源点与s连权值为in...原创 2019-08-24 23:40:43 · 347 阅读 · 0 评论 -
HihoCoder - 1398 - 网络流五·最大权闭合子图
题目:HihoCoder - 1398题意:题目说的很清楚了,题解也给了,就是最大权闭合子图,也有证明(虽然我看不懂)题解:就讲一下最大权闭合子图的做法吧:引入闭合子图的概念 : 通俗点说就是选出一个图的子图,使得子图中的所有点出度指向的点依旧在这个子图内,则说明此子图是闭合子图。最大权闭合子图 : 假设每个点具有点权值,在一个图的所有闭合子图中,点权之和最大的即是最大权闭合子...原创 2019-08-21 23:37:33 · 206 阅读 · 0 评论 -
HDU - 4292 - Food(网络流-拆点建图)
题目:HDU-4292题意:有N个人,F种食品,D种饮料,接下来一行表示F种食品的数量,再下一行D种饮料的数量,接下来的N行F列表示N个人对F种食品的可以接受情况:Y为可接受,N为不可接受。再接下来N行D列表示N个人对D种饮料可以接受的情况,Y与N和上面的代表相同。问最多能满足多少人,一人任意一种可接受的一个食品和一杯饮料。题解:源点vs与每种食品建边,边权为当前食品的数量;每种饮料与汇点...原创 2019-08-22 00:53:23 · 164 阅读 · 0 评论