
图论-最大流/最小割
Endless_Way
这个作者很懒,什么都没留下…
展开
-
BZOJ 2756 [SCOI2012]奇怪的游戏
网络流。确实是网络流题目做太少,完全没往这方面去想。。。对棋盘进行黑白相间染色,如果记s0表示黑格子数字和,s1表示白格子数字和,t1表示黑格子数量,t2表示白格子数量,操作之后数字全都是x,那么因为黑白格子的操作次数肯定一样,有 x∗t1−s1=x∗t0−s0x*t1-s1=x*t0-s0 可以得到 x=s1−s0t1−t0x=\frac{s1-s0}{t1-t0}如果t1≠t2t1\ne原创 2016-08-14 17:47:22 · 374 阅读 · 0 评论 -
BZOJ 1066 [SCOI2007]蜥蜴
最大流。要求逃出去的数量最多,各种状态又十分复杂,石柱还有次数限制,直接就会想到网络流的最大流。怎么体现次数限制(石柱高度)?拆点。对于每一个点,拆成入点和出点,连边,容量为高度。建源点和汇点。源点连所有蜥蜴,容量INF。汇点连所有可以出去的地方,容量也是INF。各个能跳到的点之间也要连。跑最大流。还有,注意这题的距离不是曼哈顿距离,是平面距离。连边的时候手残了,强行WA一次- - 大概没救了吧#i原创 2016-08-16 22:45:30 · 370 阅读 · 0 评论 -
BZOJ 1189 [HNOI2007]紧急疏散evacuate
二分+最大流。首先可以发现如果t时间可以全部撤离,那么所有大于t的时间都可以撤离,于是考虑二分。又发现其实一个人往一个门走,走的肯定是最短路,于是可以计算出每个人到每个门的最短路。每一个人看作一个流量,由源点向每个人连容量为1的边。将每个门拆点表示每个时间出去的人(对于一个门C可以拆成编号为C+1,C+2,C+3,C+4……都向汇点连容量1的边),最多拆400个。每个人向每个门的【C+最短路距离】点原创 2016-08-23 12:38:52 · 375 阅读 · 0 评论 -
BZOJ 1934 [Shoi2007]Vote 善意的投票
最小割如果能想到最小割,建图也大概可以脑补出来了。容量都是1。 如果i同意,S->i,否则,i->T。割掉表示与自己冲突。 对于一对朋友i,j,i->j,j->i,割掉表示和朋友冲突。根据割的性质,最终一定没有S->T的路径,即不会有不同决策落入同一连通分量。#include<cstdio>#include<cstring>#include<algorithm>#define N 305原创 2016-09-15 16:36:43 · 245 阅读 · 0 评论 -
BZOJ 1001 [BeiJing2006]狼抓兔子
平面图最小割转对偶图最短路。第一眼看到这题,显然是最小割嘛。。。根据最大流最小割定理,跑一遍最大流即可,但复杂度O(n2∗m)O(n^2*m),显然要T啊。然后我就学习了平面图最小割转对偶图最短路的想法,看完就会做了,资料传送门:两极相通——浅析最大最小定理在信息学竞赛中的应用这里顺便摘抄一些平面图的重要定义和性质,详细内容看资料: ·平面图:若图G可画在平面上,使得任意两条边都不会在非端点处相原创 2016-08-14 15:01:33 · 625 阅读 · 2 评论 -
BZOJ 1532 [POI2005]Kos-Dicing
二分+最大流二分答案s->所有人,容量为二分的答案,表示允许赢的次数 所有人->分别参与的所有比赛,容量为1,表示赢这局 所有比赛->t,容量1,表示这局已经做完了如何有解,那么一定能满流#include<cstdio>#include<queue>#include<cstring>#include<algorithm>#define N 10010#define S 2*N-1#d原创 2016-09-29 19:38:18 · 343 阅读 · 0 评论 -
BZOJ 2400 Spoj 839 Optimal Marks
最小割显然按位来做。我们可以发现我们实际上是在把所有点划分成两个集合,两个集合之间可能有交叉的代价,这就类似于最小割模型!要求点权和最小可以把代价放大到10000并且将所有待定点与s(表示0集合)连一条代价1的边,这样就可以有主次关系了。#include<cstdio>#include<cstring>#include<algorithm>#include<queue>#define N 5原创 2016-10-29 13:55:11 · 387 阅读 · 0 评论 -
BZOJ 2229 [Zjoi2011]最小割
最小割树关于最小割树的详细内容和证明,请看【ZJOI2016 day2讲课 无向图最小割】,这个东西自己找吧,我就不发了。。。默默摘抄一些Gusfield算法fa[u]在u被枚举到之前表示u所属点集的代表点,枚举到之后表示u在最小割树上的父亲。初始时所有点都属于以1为代表点的点集。从2到|V|依次枚举u,把u所在点集以u和fa[u]为源和汇拆分,所有被分到u侧的点x把fa[x]修改为u。注意枚举之后原创 2017-01-14 12:02:26 · 415 阅读 · 3 评论 -
BZOJ 1497 [NOI2006]最大获利
最大权闭合图关于最大权闭合图的那套理论,去看胡伯涛论文《最小割模型在信息学竞赛中的应用》吧,orz学长。顺便做点笔记:最大权闭合图解决这样一类问题:如果选了一个点, 则这个点所有可达的点都必须选,求最大点权和。最大权闭合图的建图流程:1.增加源s汇t 2.源s连接原图的正权点,容量为相应点权 3.原图的负权点连接汇t,容量为相应点权的相反数 4.原图边的容量为正无限. 最终答案就是:正点权和原创 2017-03-16 12:58:08 · 626 阅读 · 0 评论