![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络流
Freopen
这个作者很懒,什么都没留下…
展开
-
网络流作业
CF708D Incorrect Flow对于容量c≥fc\geq fc≥f的情况,可以增加流量c−fc-fc−f,费用为111,可以减少流量fff,费用为111,可以容量流量一起增加,费用为222。对于c<fc\lt fc<f的情况,可以先默认把ccc增加到fff,那么减少流量时有f−cf-cf−c的流量就不用花费,其他同上。然后用类似上下界网络流的方法建下图来保证流量平衡跑最小费用可行流即可。AC Code\mathcal AC \ CodeAC Code#in原创 2020-06-14 17:09:55 · 294 阅读 · 0 评论 -
BZOJ3118 : Orz the MST(对偶费用流)
题目我已经3个月登不上BZOJ了,该不会真的炸了吧对于线性规划对偶这一套不熟悉的同学可以看我的这篇博客最后你会发现我还是在让你去看集训队论文对于我们需要的最小生成树,首先树边只会减小,非树边只会增加,考虑所有非树边uuu,他的两个端点在树上的简单路径上的所有非树边vvv,那么uuu的减量du+vd_u+vdu+v的增量dv≥wu−wvd_v\geq w_u-w_vdv≥wu−wv。所以可以列出线性规划:minimize∑dubu+dvavs.t.du+dv≥wu−wvdu≥0\begin{a原创 2020-05-16 09:33:50 · 371 阅读 · 1 评论 -
BZOJ 3593 Control(匹配,最优子结构,平衡树优化DP)
题目BZOJ真的炸了首先药水很容易解决,求出最优方案后,分两种情况,一种是把最优方案中bbb最大的变成000,一种是把不在最优方案中aaa最小的变成000(因为不在最优方案中的只有aaa有用,bbb都可以看做000),然后再求一遍最优方案。这个最优方案我们用二分图最小权匹配的视角来看待,那么费用流建图之后可以发现:由KMKMKM算法找最小权匹配的增广过程与最小费用流的增广过程我们可以知道,在已经匹配中的点是不会因为增广而不在匹配中的。也就是说,S和T周围的边一旦被增广,就不会被退流。这说明,这原创 2020-05-14 21:17:20 · 493 阅读 · 0 评论 -
LP对偶费用流 TopCoder SRM 676 div1 Farmville(最大费用循环流,对偶原理)
感觉这个年代已经没有人知道什么是对偶了。对偶原理与线性规划原创 2020-05-13 19:26:31 · 636 阅读 · 0 评论 -
BZOJ 3681 Arietta(可持久化线段树合并优化建边|网络流)
题目尽管是一道板题但是还是很难的。中途输出了一下结果,4e54e54e5的点1e61e61e6的边。。。SAPSAPSAP在一条链的时候TTT了,换成DinicDinicDinic就过了。。。应该是DinicDinicDinic比SAPSAPSAP更能创造奇迹。AC Code:\rm AC \ Code:AC Code:#include<bits/stdc++...原创 2019-12-10 20:57:23 · 146 阅读 · 0 评论 -
[SHOI2007]善意的投票 (最小割|niubility的贪心)
题目…最小割建图显然.AC Code\rm AC\ CodeAC Code#include<bits/stdc++.h>#define maxn 305#define maxm maxn * maxn * 2#define inf 0x3f3f3f3f#define Copy(a,b) memcpy(a,b,sizeof a)using names...原创 2019-12-10 15:44:21 · 79 阅读 · 0 评论 -
BZOJ 1305: [CQOI2009]dance跳舞 (二分答案网络流|错误的贪心)
题目循规蹈矩的做法是比较显然的。有着看似严谨的贪心最后的评论一语道出贪心的错误。有些的度数看似是有很多,但是因为对方太忙,都是废的度数。。。所有人度数一致才可以套结论。。。。。。AC Code\rm AC \ CodeAC Code#include<bits/stdc++.h>#define maxn 250#define maxm 50005#...原创 2019-12-10 15:22:53 · 74 阅读 · 0 评论 -
BZOJ 2463: [中山市选2009]谁能赢呢?(博弈论棋盘模型)
题目棋盘上,我们可以把格子黑白染色,看做一个二分图,如果存在完美匹配,那么Bob每步都可以沿着一条匹配边走,Alice必须沿着非匹配边走,Bob拥有必胜策略。如果不存在完美匹配,那么对于所有不一定在最大匹配上的(出发)点,Alice都拥有必胜策略:Bob走一条非匹配边,Alice走一条匹配边,否则,我们从原理上分析一波,如果Alice赢,一定是Bob一开始走了可能为非匹配边的边,那么Bo...原创 2019-03-16 10:12:04 · 188 阅读 · 0 评论 -
Stoer_Wagner算法
浅谈无向图最小割问题的一些算法及应用 王文涛定理证明详见论文。HDU3691Nubulsa Expo代码:#include<bits/stdc++.h>#define maxn 305#define LL long longusing namespace std;int n,m,S,c[maxn][maxn],d[maxn],vis[maxn],id[maxn],an...原创 2019-12-04 22:49:00 · 834 阅读 · 0 评论 -
HLPP预留推进算法
Dalao’s blog代码参考(不是我的)转载 2019-12-04 15:27:50 · 450 阅读 · 0 评论 -
LOJ #2146. 「SHOI2017」寿司餐厅(最大权闭合子图)
题目注意是CCC种。大概就这样一个图。AC Code\rm AC\ CodeAC Code#include<bits/stdc++.h>#define maxn 10005#define maxm 40005#define inf 0x3f3f3f3f#define Clear(a,b) memset(a,b,sizeof a)#define Co...原创 2019-12-03 21:16:23 · 161 阅读 · 0 评论 -
POJ 2125 Destroying The Graph(最小点权覆盖集求方案)
题目模板题。我们从SSS开始dfs\text{dfs}dfs以得出最小割的一组特解。如果左边一排的点不能从SdfsS\text {dfs}Sdfs到,那么其左边的边就在最小割中。如果右边一排的点能从SdfsS\text {dfs}Sdfs到,那么其右边的边就在最小割中。AC Code\rm AC \ CodeAC Code#include<cstdio>...原创 2019-12-03 21:13:42 · 83 阅读 · 0 评论 -
Hard Life POJ - 3155(最大密度子图)
模板题。点数为n+mn+mn+m的方法很容易想。点数为nnn的方法详见胡伯涛论文。具体来说,用最小割:S−>uS->uS−>u的边被割代表uuu不在最大密度子图内。u−>Tu->Tu−>T的边被割代表在。那么先分数规划二分答案,再求最小割即可得到最大密度子图和联通最大密度子图与其反图的边的式子,配下系数即可得出密度。注意分数规划中要保证分母不为零,...原创 2019-12-03 17:44:03 · 134 阅读 · 0 评论 -
Euler Circuit UVA - 10735(混合图的欧拉回路)
vjudge可以交。先给无向边定向,然后用网络流考虑反向以满足度数限制。建图就像上下界网络流一样。ACCode:\rm{AC Code:}ACCode:#define maxn 105#define maxm 5005#define inf 0x3f3f3f3fusing namespace std;int n,m,x[maxm],y[maxm],d[maxm],pos[maxm...原创 2019-10-06 10:54:28 · 174 阅读 · 0 评论 -
一般图最大匹配——带花树算法
建议看集训队论文。求最大匹配的过程与增广路密不可分。增广路就是从一个未匹配点开始走到另外一个未匹配点并且中间经过的边是匹配边和非匹配边相间的路径,不可能有连续的匹配边也没必要有连续的非匹配边。如果路径中没有环,我们可以把增广路上的匹配边和非匹配边取反,匹配边变成非匹配边,非匹配边变成匹配边,匹配数量会+1。那么求增广路就是求最大匹配的一个方法。如果一个图中有奇环,那么从非匹配点出发,走一...原创 2019-10-05 11:38:32 · 220 阅读 · 0 评论 -
NOI2012美食节
动态加点减少常数的(不加当前弧还是要T的)费用流。#include<bits/stdc++.h>#define maxn 105 * 805#define inf 0x3f3f3f3fusing namespace std;int n,m;int info[maxn],buf[maxn],Prev[maxn<<1],to[maxn<<1],cap[...原创 2019-10-03 16:21:30 · 236 阅读 · 0 评论 -
BZOJ 3275 Number (网络流最小割二元关系)
题目首先这个题是二元关系,我们想到了最小割。最大值转化为总值-最小割,于是关系变为两者同时选时代价+inf。相同>相异。需要反转,需要二分图环境。考虑小学奥数猜想满足条件的数奇偶性不同。同偶:gcd = 2同奇:考虑(mod4)\pmod4(mod4)意义下a∗a≡1(mod4)a*a \equiv 1 \pmod 4a∗a≡1(mod4)2≡a∗a+b∗b≡c∗c≡1(m...原创 2019-03-12 22:07:55 · 145 阅读 · 0 评论 -
【bzoj2400】Spoj 839 Optimal Marks 最小割
定义无向图中的一条边的值为:这条边连接的两个点的值的异或值。定义一个无向图的值为:这个无向图所有边的值的和。给你一个有n个结点m条边的无向图。其中的一些点的值是给定的,而其余的点的值由你决定(但要求均为非负数),使得这个无向图的值最小。在无向图的值最小的前提下,使得无向图中所有点的值的和最小。麻烦的是第二问,其实也不烦,把第一问的权值乘10000再在%10000的意义下找点最小值。也可以从...原创 2019-03-12 21:27:11 · 116 阅读 · 0 评论 -
网络流的各种加边优化
1.最显然的前缀优化。2.线段树优化【CF 793G】Oleg and Chessdalao博客3.倍增优化 CF786E ALT 最小割+倍增lca这个dalao讲的好原创 2018-12-23 11:20:01 · 543 阅读 · 0 评论 -
BZOJ 2965: 保护古迹(平面图转对偶图+最小割)
题目这可能是我OI生涯中最长代码的题了。如果我不打紫荆花之恋的话明显转对偶图之后,2p2^p2p枚举包含古迹的面,将这些面与T连流量inf的边,那么面积无限的面到T的最大流就是最小割就是保护古迹的最小花费。那么只需要把图建出来就行了(160行)。注意(出题人保证)没有正方形套正方形(图不联通但是套在一起???)这种情况。Claris大佬又想多了:首先要将这个图连通,方法是通过扫描线+...原创 2019-03-13 22:57:40 · 152 阅读 · 0 评论 -
BZOJ 1565 NOI2009 植物大战僵尸(最大权闭合子图)
题目可以发现,这个题就是在有一堆某个植物要在某个植物之前吃的要求下求最大值。如果依赖关系是棵树,可以树形DP。如果依赖关系是个DAG,可以做最大权闭合子图。具体来说,最大权闭合子图的求解是在网络流二元关系下实现的。具体关系为某一个吃了后面的某一个没吃就不合法,代价为inf。于是可以用inf流量的边将他们相连,正收益的与S相连,正代价的与T相连,将正收益全部相加-最小割(正代价+需要失去...原创 2019-03-14 19:21:08 · 146 阅读 · 0 评论 -
BZOJ 1458: 士兵占领(最小流)
有一个M * N的棋盘,有的格子是障碍。现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里不能放置士兵。我们称这些士兵占领了整个棋盘当满足第i行至少放置了Li个士兵, 第j列至少放置了Cj个士兵。现在你的任务是要求使用最少个数的士兵来占领整个棋盘。最小流裸题。连T->S成循环流,最小流为T到S的边的反向边的流量-T到S的最大流(需要删去T到S的边)AC Cod...原创 2019-03-14 20:08:10 · 126 阅读 · 0 评论 -
LG P3260 [JLOI2014]镜面通道
题目水能流过的地方,光就能穿过。逝者如流水,光阴如梭所以光线可以不用管,就是前面和后面联通就行,把所有相连的图形连inf的边,每个点拆成两个点,中间连1,最小割即为花费。(这个计算几何良心)AC Code:#include<bits/stdc++.h>#define maxn 705#define maxm maxn * maxn * 4#define eps 1...原创 2019-03-14 21:08:13 · 163 阅读 · 0 评论 -
BZOJ 3996 TJOI2015 线性代数(最大权闭合子图)
题目发现选Bi,j选B_{i,j}选Bi,j需要承受CiC_iCi和CjC_jCj的代价,直接最大权闭合子图。。。建成二分图,ans = b的和 - 最小割PS:此题最大流需要优化剪枝。。。AC Code#include<bits/stdc++.h>#define maxn 505#define inf 0x3f3f3f3fusing namespace std;...原创 2019-03-11 16:12:53 · 111 阅读 · 0 评论 -
上下界网络流
大佬博客转载 2019-03-11 19:01:12 · 245 阅读 · 0 评论 -
BZOJ 2502: 清理雪道(上下界最小流/上下界最小费用流)
滑雪场坐落在FJ省西北部的若干座山上。从空中鸟瞰,滑雪场可以看作一个有向无环图,每条弧代表一个斜坡(即雪道),弧的方向代表斜坡下降的方向。你的团队负责每周定时清理雪道。你们拥有一架直升飞机,每次飞行可以从总部带一个人降落到滑雪场的某个地点,然后再飞回总部。从降落的地点出发,这个人可以顺着斜坡向下滑行,并清理他所经过的雪道。由于每次飞行的耗费是固定的,为了最小化耗费,你想知道如何用最少的飞行...原创 2019-03-11 20:00:17 · 147 阅读 · 0 评论 -
BZOJ3774 最优选择(网络流最小割二元关系)
对于两个01变量,如果我们把图造成这个样子:a为x为0的代价,c为x为1的代价。b,d同理于y那么x,y之间好像没有关系。那么如果最小花费为最小割,可以列出4个关于abcdef的方程使得图中最小割为最小花费。然后我们就可以用最大流(最小割)初步处理二元关系了。这时2e=v1+v2-v3-v4=-K这里说的是如果K = v3 + v4 - v1 - v2(相异减相同)小于0,那...原创 2019-03-11 22:13:15 · 360 阅读 · 0 评论 -
BZOJ 1570: [JSOI2008]Blue Mary的旅行(迭代加深最大流)
题目好裸啊。看到数据范围秒懂:每天拆点就行了。AC Code:#include<bits/stdc++.h>#define maxn 10000#define maxm maxn * 105#define inf 0x3f3f3f3fusing namespace std;int n,m,t;int mark[305][105],x[maxm],y[maxm],w...原创 2019-03-12 10:55:52 · 146 阅读 · 0 评论 -
BZOJ 2095: [Poi2010]Bridges 混合图欧拉回路
YYD为了减肥,他来到了瘦海,这是一个巨大的海,海中有n个小岛,小岛之间有m座桥连接,两个小岛之间不会有两座桥,并且从一个小岛可以到另外任意一个小岛。现在YYD想骑单车从小岛1出发,骑过每一座桥,到达每一个小岛,然后回到小岛1。霸中同学为了让YYD减肥成功,召唤了大风,由于是海上,风变得十分大,经过每一座桥都有不可避免的风阻碍YYD,YYD十分ddt,于是用泡芙贿赂了你,希望你能帮他找出一条承受...原创 2019-03-12 14:45:31 · 113 阅读 · 0 评论 -
Luogu P4313 文理分科(网络流二元关系)
题目BZOJ3774 最优选择的升级版。注意周围有3种状态(全选理,全选文,不统一),所以要拆2个点出来。AC Code:#include<bits/stdc++.h>#define maxn 30010#define maxm maxn * 100#define inf 0x3f3f3f3fusing namespace std;int n,m,mark[105]...原创 2019-03-12 16:10:07 · 223 阅读 · 0 评论 -
BZOJ 2132: 圈地计划(网络流二元关系)
题目这个题,求最大值,那么先把所有值加起来-最小割。那么我们的二元关系应该是选同样有∣x−i∣+∣y−j∣=1,Cij+Cxy|x-i|+|y-j|=1,C_{ij}+C_{xy}∣x−i∣+∣y−j∣=1,Cij+Cxy的代价。相异代价-相同代价 < 0。需要反转,中间代价为C之和。具体看:pty《浅析一类最小割问题》AC Code:#include<bits/st...原创 2019-03-12 16:42:16 · 164 阅读 · 0 评论 -
Luogu 1791【[国家集训队]人员雇佣】 (网络流)
自己的博客原创 2019-03-12 19:07:16 · 148 阅读 · 0 评论 -
Luogu P1646 [国家集训队]happiness(网络流)
题目还是一模一样的套路啊。。。。。。都不想写博客了。相异-相同>0,不用反转AC Code#include<bits/stdc++.h>#define maxn 10055#define maxm maxn * 30#define inf 0x3f3f3f3fusing namespace std;char cb[1<<15],*cs=cb,*c...原创 2019-03-12 19:30:18 · 109 阅读 · 0 评论 -
[AHOI2006]上学路线route
题目最短路图上最小割。最短路图下为何不能直接用SPFA式Dinic。。。。会WA?WA一年了。AC Code:// luogu-judger-enable-o2#include<bits/stdc++.h>#define maxn 505#define maxm 400005#define inf 0x3f3f3f3fusing namespace std;int...原创 2019-03-12 20:41:06 · 198 阅读 · 0 评论