![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络流
Wuliwuliii
谁无暴风劲雨时,守得云开见日明!
展开
-
PowerOJ 2543: 赛场布置
题目链接 对于每个点,它可以选择男或者女,如果要加上的贡献,那么相邻的一定得是异性才可以。所以,对相邻的,我们可以考虑成: 然后,我们对于点坐标的的奇偶性分别讨论即可。 当然,还需要考虑的贡献。 然后就是全选减去最少割去的即可。#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#in...原创 2020-10-15 09:57:47 · 536 阅读 · 0 评论 -
乔乔和牛牛逛超市【CCF202006-5】
简单的说,就是我们想知道取其中的一些点,使得他们之间满足题目中给出的要求,然后问这样的集合的权值的最大值。 将问题这样展开之后,实际上就是一个最大权闭合子图问题了,什么是最大权闭合子图?就是求一个集合,集合的所有的点的出边所指向的点也在集合内,求这样的集合的点的权值和的最大。 于是,这个问题就是一个网络流求最大权闭合子图问题了。 分两种状态考虑。情况1:1 x y 那么,我们让,意思是我们要取x的话,就必须取y。情况2:2 x y 我们让,指的是要取y的端点,就...原创 2020-09-11 15:31:55 · 785 阅读 · 0 评论 -
[JSOI2009]球队收益 / 球队预算【费用流】
题目链接 先说一下我一开始错了有一段时间的做法为什么是错的:错误做法: 我们可以看到每个点i基础有胜利次,有失败次,可以发现一点,无论是胜利次数增多还是失败次数增多,总的花费一定是增多的,若初始为,则胜利一次会变成,而失败一次呢,则会变成,所以他们一定是增加的。于是,我们可以说费用流的根据贪心选最短路的策略,那么一定是会先去选择最小的边。 所以,将每个点拆成胜点、负点,一次u、v打比赛,则一定有一方胜,有一方败,所以不妨胜连败,败连胜,然后又只有一场比赛,所以对其限流就可以了。 ...原创 2020-08-28 14:56:51 · 175 阅读 · 0 评论 -
线段树/扫描线 优化网络流建图
例题 CF793G Oleg and chess我们可以构造这样的矩阵,令白色矩阵为不可以走的矩阵,令有色矩阵为我们的匹配阵。 于是我们可以将每一个可以用作匹配的矩阵拆出来,就有它最远延伸到的点,以及延伸到的终点,每一个延伸到的终点,实际上就是每一个白色矩阵的起点的前一个位置(因为我们要保证矩阵没有相交面积)。这里我们的参考系选择是从左往右来看的,扫描也是从最左开始的。 所以,我们要知道每个点的最前面的到达的位置,然后我们就可以确定每一个有色矩阵的位置区间了,就譬如我们现在拿出一..原创 2020-07-31 10:01:27 · 410 阅读 · 0 评论 -
Interval【对偶图优化最小割(最大最小定理 周冬)】
2020牛客多校第二场I题首先,我们考虑最小割的方式来处理该问题:很明显的,这就是一张对偶图了,因为它没有任意两线会存在相交的可能了。所以根据对偶图的做法,我们可以将最小割问题转化为最短路了:绿色和粉色是新的对偶图所构成的边和点。然后我们在对偶图上跑一个最短路就可以了。#include <iostream>#include <cstdio>#include <cmath>#include <string>#includ原创 2020-07-15 16:55:59 · 393 阅读 · 0 评论 -
[ICPC-Beijing 2006]狼抓兔子【对偶图优化网络流】
题目链接 这里的点数很大,所以需要用对偶图来进行优化,因为这道题的图是很明显的对偶图,因为不存在三维的线(也就是空间平面上的线,真实不交,但是是在线的上下)。 所以,我们对这张图旋转90度,然后然后开无向图来进行跑一个最短路,就是相当于原图的网络流的最小割了。#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring..原创 2020-07-15 09:36:05 · 168 阅读 · 0 评论 -
EOJ3745. 迷宫【二分答案+最大流】
题目链接 这里的点和边的个数都是比较小的,当然,不是说可以暴力了。可以用分层图的方式来解决这题,就是,我们给每个点每个时间对应的流,假设ans时间可以完成最大流,于是就可以利用最大流再加上每个点到下一个点的时间来进行计算了,如果最大流等于人数了,说明这个时间是可行时间,不然就是时间偏小了。#include <iostream>#include <cstdio>#include <cmath>#include <string>#include.原创 2020-05-28 09:23:14 · 465 阅读 · 0 评论 -
[AHOI2009]最小割【最小割+Tarjan】
题目链接 P4126 [AHOI2009]最小割 将题目拆解成两个问题,我们分别进行求解。 可以作为最小割的边 如果它可以是最小割中的边的话,首先它需要满足的是流过它的流是满流的,这是因为如果它被割去了,那么一定是满流的,否则一定不会是最小割中的一条边。 再者,虽然它是满流的,但是它可以被替换掉,怎么理解?就是它现在表面上是别割去了,但是实际上图中还有残余网络,可以代替这条被割去的边。给组合适的样例:6 6 1 61 2 12 3 22 4 23 5 14 5 ...原创 2020-05-26 15:52:16 · 470 阅读 · 0 评论 -
[加油武汉]疫情调查【最小费用可行流】
题目链接 P6061 [加油武汉]疫情调查 这道题一上来,就让我看到了最小费用可行流的影子,每个点至少经过一次,且不限经过次数,那么不就是最小费用可行流了嘛。 于是,我们就开始建图,对于每个点拆点,然后设置下限为1,上限INF,记得一件事,要开long long,INF也要设置的足够的大,不然会WA。对于自己的自环,那么就可以是。 对于M条边也就是,这里是因为拆点了。 然后...原创 2020-05-01 23:05:38 · 209 阅读 · 0 评论 -
Fantastic Graph【2018沈阳网络赛】【有上下限网络流】
题目链接 给出一幅二分图,有左侧N个点,右侧M个点,问能否选用其中给出的K条边使得每个点的度都为区间[L, R]上的值,边都是无向边。 很明显,限制了上下限,于是想到了往有上下界可行流上去考虑,将原图考虑成有源汇点,让原图源点到左侧的所有点的经过次数都要是[L, R]之间,让右侧的所有点到原图汇点的经过次数都要是在[L, R]之间,那么每一条边的上下限也就确定了。 然后,依据有上...原创 2020-04-30 09:45:48 · 240 阅读 · 0 评论 -
动物森友会【科大讯飞杯L题】【二分答案+最大流】
题目链接 有N个物品,一周有7天,然后呢,要对应的每个物品都要达到各自的需求数量,于是问,最少需要几天才可以达到要求? 很明显的,这是线性关系的,我们可以用二分答案来解决这个问题,然后呢怎么知道是否满足条件也就是来确定的,要满足每个物品都要拿满。好了,这样不就有点构成最大流的性质了嘛(因为N很小),然后就是源点向N个物品链接流为的边,然后物品向它对应的每一天链接边,然后对应每一天向汇点...原创 2020-04-19 17:17:21 · 318 阅读 · 0 评论 -
Intervals【POJ - 3680】【费用流】
题目链接 给出N个开区间,每个开区间都有一个权值,现在对于实轴上的所有的点,要满足每一个点被覆盖次数不超过K次,问最大可以获得的权值是多大? 离散化+费用流 首先,我们看到权值的区间实际上并没有1e5那么长,我们可以对其进行离散化一下,于是区间的最长也就是2N了,也就是从1e5到了4e2。 然后,对于,我们先看只能被经过最多K次,可以看成一个从每条边都最多经过K次,那么不妨...原创 2020-04-17 09:04:12 · 140 阅读 · 0 评论 -
The Chinese Postman Problem【HIT-2739】【中国邮路问题/最小费用可行流】
题目链接 HIT 2739有上下界网络流 每条边至少经过一次,但是不限制经过次数,这么不就是有下界网络流的做法嘛,首先,将每个点的入度和出度确定下来,然后呢,入度减出度大于0的就和源点连接,入度减出度小于0的就和汇点连接,于是就建立起了有上下界网络流模型。 然后,判断“-1”,有入度无出度,或者有出度无入度的都是不可行的。#include <iostream>#...原创 2020-04-07 23:21:07 · 479 阅读 · 0 评论 -
[Wc2007]剪刀石头布【竞赛图最大三元环个数+费用流】
题目链接 BZOJ 2597 给定一个存在不确定边的竞赛图,求原图有向三元环数的最大值。有些边是不确定方向的,我们需要给这些边定向来使得三元环的数目最多,总所周知,由三个点的竞赛图组成的三元环,每个点的入度都应该为1,这样才可以组成一个三元环,如果有N个点的竞赛图,那么最多最多就是个三元环。那么,我们不妨减去最少的不可行三元环数,来确定最大可能三元环数。怎样的三元环是...原创 2020-04-05 22:58:57 · 329 阅读 · 0 评论 -
有向三元环 count【竞赛图三元环最大数+最小费用最大流】
题目链接 UMS Online Judge IPC14 成功的get到了全网的一血,开心~ 题意:给定一个竞赛图的子图,求原图有向三元环数的最大值。 有些边是不确定方向的,我们需要给这些边定向来使得三元环的数目最多,总所周知,由三个点的竞赛图组成的三元环,每个点的入度都应该为1,这样才可以组成一个三元环,如果有N个点的竞赛图,那么最多最多就是个三元环。 那么,我们不妨减去最...原创 2020-04-05 15:05:38 · 1616 阅读 · 1 评论 -
[TJOI2007]脱险【最大流】
题目链接 首先,每个时刻,每个点最多经过一个人,那么来说,我们需要对于每个时刻的每个点进行拆点,限制流量。 然后,因为图实际上只有10*10,因为最外围是包围圈,然后时间上其实是上限50,所以我们不妨对于时间来建点,表示时间为Tim时候的坐标为(x,y)的点,那么,根据每一秒移动一步,初始为0,我们向四个方向都是链接上下一秒时刻对应的点值。 接下去,就是最大流的部分了。#i...原创 2020-03-29 10:52:03 · 285 阅读 · 0 评论 -
[USACO09JAN]Total Flow S【最大流模板题】
题目链接 P2936 [USACO09JAN]Total Flow S约翰总希望他的奶牛有足够的水喝,因此他找来了农场的水管地图,想算算牛棚得到的水的 总流量.农场里一共有N根水管.约翰发现水管网络混乱不堪,他试图对其进行简 化.他简化的方式是这样的:两根水管串联,则可以用较小流量的那根水管代替总流量.两根水管并联,则可以用流量为两根水管流量和的一根水管代替它们当然,如果存在一根水...原创 2020-03-14 21:17:27 · 195 阅读 · 0 评论 -
[USACO06FEB]Steady Cow Assignment G【二分+最大流】
题目链接 P2857 [USACO06FEB]Steady Cow Assignment G有N头牛,B个牛棚.告诉你每头牛心里牛棚的座次,即哪个牛棚他最喜欢,哪个第2喜欢, 哪个第3喜欢,等等.但牛棚容量一定,所以每头牛分配到的牛棚在该牛心中的座次有高有低.现 在求一种最公平的方法分配牛到牛棚,使所有牛中,所居牛棚的座次最高与最低的跨度最小.数据范围:(1 <= N <=...原创 2020-03-14 20:56:13 · 176 阅读 · 0 评论 -
[ZJOI2009]狼和羊的故事【最小割】
题目链接 P2598 [ZJOI2009]狼和羊的故事 要让羊和狼都区别开来,需要的最小的割是多少?每只羊向四周有4个可能的方向,每只狼也是同样的,所以每个动物向周围可以跑出4个流,我们要建立栅栏,可以考虑成切断的“割”,那么最少需要多少的割才能使得羊狼无法接触呢?于是我们对羊连接在源点上,狼连接在汇点上,羊抵达不了狼,那么就是说明是其中的一种割的方案了,最小的割就是最大流了。#inc...原创 2020-03-14 10:16:44 · 245 阅读 · 0 评论 -
Harmonious Army 【HDU - 6598】【最小割】
题目链接 很经典的一道问题,应该是二刷了,但是刷第二遍的时候还是有很深刻的体会。 题意:有N个人,每个人都有自己所可选的阵营,战士或者是法师,现在给出M个关系对,如果关系对中的两个人都是战士会得到贡献a,如果一战士一法师会得到贡献b,如果两个法师会得到贡献c,现在求最大贡献。 好了,我们来思考这个问题,有N个人,他们每个人该选择战士还是法师呢?肯定是由他的贡献来确定的,如果现在有...原创 2020-03-13 14:39:06 · 188 阅读 · 0 评论 -
[SCOI2007]蜥蜴【最大流模板】
题目链接 P2472 [SCOI2007]蜥蜴 期间一直没有过样例,后来想了想,是我的这里需要考虑谨慎:这里很重要,可千万别写成了BFS搜索时候的去往临近点的形式了。 然后剩下的就是最大流了,简单的拆点,然后构图,这里就不深入讲了。 对了,题目所说的距离,值得是欧几里得距离。#include <iostream>#include <cstdio&...原创 2020-03-11 20:24:44 · 183 阅读 · 0 评论 -
[NOI2010]海拔【对偶图优化网络流】
题目链接 P2046 [NOI2010]海拔 如果按照原图的方法直接跑最大流来求最小割,那么500*500个点的跑网络流,必然是TLE的,所以这里引入对偶图优化。 首先,我们要知道一些前置知识。平面图 指点和边之间有一种连法,使得边与边之间没有交点。如图就是一个合理的平面图这就不是一个合理的平面图,因为有两条线有一个交点。 于是,在满足平面图的情况下,我...原创 2020-03-11 14:46:11 · 209 阅读 · 0 评论 -
Binary Tree on Plane【费用流】
题目链接 CF 277 E题意翻译给你平面上n个点 (2≤n≤400),要求用这些点组成一个二叉树(每个节点的儿子节点不超过两个),定义每条边的权值为两个点之间的欧几里得距离。求一个权值和最小的二叉树,并输出这个权值。其中,点i可以成为点j的的父亲的条件是:点i的y坐标比j的y坐标大。如果不存在满足条件的二叉树,输出−1。 我们知道二叉树所满足...原创 2020-03-10 19:54:36 · 154 阅读 · 0 评论 -
[SDOI2010]星际竞速【有上下界最小费用可行流】
题目链接 P2469 [SDOI2010]星际竞速 这道题的上下界在于两个,其中一个显而易见,但是另一个却比较的隐藏了。每个点都要求被经过一次且恰好一次 你需要至少通过瞬移这个技能一次,因为需要跳到其中的一个星球上去 于是,就可以根据这两个上下界来进行有上下界最小费用可行流了。#include <iostream>#include <cstdio>...原创 2020-03-10 10:52:47 · 176 阅读 · 0 评论 -
[ZJOI2009]假期的宿舍【二分图最大匹配】
题目链接 P2055 [ZJOI2009]假期的宿舍 关于这道题的做法,我所使用的算法可能会复杂了,实际上我们要先理清楚题意(尽管它是道中文题)。 首先,认识关系是没有传递性的,譬如A认识B,B认识C,C认识D,C和D要回家了,A和B是外校的,不代表B能先睡C的给A暖暖炕头再搬去C认识的D的床位,然后A睡B之前睡的C的床位。 若A认识B,那么只能A去睡B的床,不是说B认识X,A就...原创 2020-03-09 22:48:09 · 125 阅读 · 0 评论 -
酒店之王【最大流】
题目链接 P1402 酒店之王 刚拿到这道题的时候,我想,我可以拆成一个二分图,以人作为中间的边,来构成这幅二分图,譬如说,人喜欢食物X和房间Y就将X->Y。但是这其中的bug显而易见,如果有一个人,喜欢食物X1和房间Y1并且还喜欢食物X2和房间Y2,那么光这个人,形成的匹配数就达到了2,显然是不正确的。 由此,正解又是什么呢?就是很纯粹的建图了,将每个人拆点,拆成i->i...原创 2020-03-09 20:11:02 · 198 阅读 · 0 评论 -
地震逃生【最大流模板题】
题目链接 P1343 地震逃生 简单的最大流的模板,小心“/0”的RE情况。读题。 另外,写的是ISAP。#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#include <alg...原创 2020-03-09 16:33:28 · 129 阅读 · 0 评论 -
80人环游世界【有上下界最小费用可行流】
题目链接 P4553 80人环游世界 我们把城市拆点,保证每个点都是被经过了Vi次。然后保证只有最多M个人去参观,所以我们要做到限流,我将限流放在源点上,建立一个和建立边从到流量为M,就是保证了只有M个人。 剩下的就是有上下界网络流的基础构图了,这道题是有源汇的,所以别忘了要把原图中的源汇店要建立从汇点到源点的流量为INF,费用为0的边。然后把入流大于出流的与超级源点相连接,将入流小于...原创 2020-03-09 15:21:17 · 207 阅读 · 0 评论 -
[NOI2009]植物大战僵尸【拓扑+最大权闭合子图】
题目链接 BZOJ 1565 看到这道题之后很容易想到的就是最大权闭合子图了,但是却有个问题就是要去除掉那些环,因为构成了环之后,相当于是无敌的状态,它们就永远不会得到贡献,并且环之后的点也是得不到贡献的,所以,这里利用拓扑,知道哪些点是可以作为最大权闭合子图上的点的,然后再根据最大权闭合子图的思想来解决该问题即可。#include <iostream>#include ...原创 2020-02-28 19:33:30 · 212 阅读 · 0 评论 -
【SHOI2017】寿司餐厅【最大权闭合子图】
题目链接 说实话,这道题从前天开始敲,然后不断的加优化,今晨才过了它,但是却对于最大权闭合子图有了很深的了解。 题意:有N种寿司,我们可以吃连续的一段寿司,讲、将得到一系列的贡献,譬如说吃了1、2、3三个寿司,将得到,,,,,这么多的贡献值,当然,每种贡献只会被计算一次。但是当我们取了C种代号为X的寿司时候,将减少的贡献是。推导过程 首先,很容易发现,这是个最大权闭合子图,那...原创 2020-02-28 11:33:07 · 154 阅读 · 0 评论 -
Magic Slab【最大权闭合子图】
牛客练习赛45 F Magic Slab 这道题,可以这样理解,有N* N个点,他们都能产生正贡献,有2N个点,他们都会产生负贡献,还有M个点也是有正贡献的,现在就是连边构成一个最大权闭合子图来求解这个问题了,于是,这题变成了一个模板题了。最大权闭合子图#include <iostream>#include <cstdio>#include <cm...原创 2020-02-27 15:45:12 · 180 阅读 · 0 评论 -
最大权闭合子图 - [求最大点权的闭合子图](算法分析)
引言·什么是最大权闭合子图先讲闭合子图的概念,就是一幅图中每个点,以及每个点的出边的点都在这幅图中,也就是这幅图中的所有点的出边都是指向子图内部的。最大权闭合子图:在所有的闭合子图中,它所包含的子图的点的点权之和是最大的。上述的问题,都是基于将权值放在点上去考虑,现在,我们想要去求解最大权闭合子图,需要把点权考虑成边权(边的流量)来计算。证明·推导·分析过程首先有一个有向连通图...原创 2020-02-26 22:43:22 · 3322 阅读 · 2 评论 -
【TJOI2015】线性代数【最大流最小割+推导过程】
题目链接 线性代数 LibreOJ - 2100首先,A矩阵*B矩阵 - C矩阵,我们会得到一个1*N的行列式,每一项是:然后再乘以A的转置行列式,最后我们可以得到的是,我们所求的就是于是,又知道非0即1,所以就是取或者不取的问题了,又有i、j同时取这个问题,我们必须要解决,于是这里可以利用的性质来解决了。我们想要这个式子的答案最大,于是,可以利用最小割(最大流)来求解。对...原创 2020-02-25 22:57:18 · 208 阅读 · 0 评论 -
【CQOI2016】不同的最小割 【分治+最大流最小割/最小割树】
LibreOJ - 2042 题目链接 这道题有个可能TLE的坑点,就是我们按照正常的网络流的建边,就是u->v(flow), v->u(0)、u->v(0), v->u(flow)。这样的无向图的建边方式,在这里会TLE的,这里算是卡了这个2倍的常数,可能会过不了最后一组样例。 剩下的,我们可以利用分治法加上最大流,以复杂度为的复杂度来解决这个问题。#i...原创 2020-02-25 14:43:13 · 173 阅读 · 0 评论 -
【SDOI2016】数字配对【建立二分图+费用流求方案数】
题目链接首先,我们可以看一下这个推导过程:如果,那么,对于,就一定不是质数,一定是它的一个因子。于是可以看出,这一定是一幅二分图。于是,可以根据二分图的性质来确定了每个点的属于S边还是T边了。#include <iostream>#include <cstdio>#include <cmath>#include <strin...原创 2020-02-25 10:30:47 · 190 阅读 · 0 评论 -
【SNOI2019】通信【分治优化建图+费用流】
题目链接首先,如果O(N^2)的方式建边的话,那么边复杂度会很高,那么就会TLE了,得分一般在80分。O(N^2)建图的图示:于是,就很容易发现,真正O(N^2)的边复杂度来源于求1~N号点的是由非0结点得来的贡献也就是一个二分图的匹配问题了。这里要的也是我们对于这O(N^2)的边复杂度的优化。这里,我们可以将边复杂度优化到O(N*log(N))。于是利用到了分治的思想,求每个...原创 2020-02-24 13:07:44 · 187 阅读 · 0 评论 -
Flow construction 【SGU - 176】【有源汇有上下界最小流+负流特殊考虑】
Flow constructionSGU - 176 有N个点,M条边,每条边有{u, v, w, c},如果c==1表示这条边一定要满流流过去,否则,这条边的流量可以是0~w的任意。求最小可行流。 于是,我们很简单的构造了一个可行流网络,这些都是简单的,关键是求出可行流之后的步骤,有很多的细节上的东西。 首先,题目中给的源汇点是1和N,但是如果有直接从1到N的边,会形成环...原创 2020-02-22 15:30:32 · 1661 阅读 · 0 评论 -
清理雪道【有源汇有上下界最小流】
题目链接 P4843 首先,我们可以知道,直接用有源汇有上下界网络流求解出来的答案是介于最大流到最小流中间的某个可能值,所以其中肯定是需要一些操作来使得它变成最小值的。 首先,固定源汇点,不是所有点都是可以变成源汇点的,所以我单独开一个s和t来充当源汇点。因为原图是DAG,所以,可以使用我们将源点链接那些入度为0的点,让出度为0的点去链接汇点,这样必定是最贪心的。 然后,就是要做...原创 2020-02-22 10:45:50 · 222 阅读 · 0 评论 -
Shoot the Bullet 【ZOJ - 3229】【有源汇有上下界最大流】
题目链接 题意:有N天,M个妹纸,接下来是一行共M个数,表示M个妹纸要求你在N天内总共给他们拍摄至少Gi个照片。然后有N天,每天有个Ci和Di,表示今天有Ci个妹纸要拍摄,但是今天最多拍摄Di张照片,然后是Ci个妹纸,第一个是妹纸的编号,0~M-1,然后是L~R,表示这个妹纸要求你最少拍L张照片,最多拍R张。解 这道题,由于我ISAP的退出的顶端高度没有写好,竟然WA了几十次,加上...原创 2020-02-22 09:58:11 · 229 阅读 · 0 评论 -
Reactor Cooling【ZOJ 2314】【无源汇有上下界可行流】
题目链接无源汇上下界可行流:没有源点S,汇点T。在网络中求可行流或者指出不存在。对于这个问题,不好处理,但是如果我们去掉流量下界限制B,那么就是最大流的模型了,问题就可以解决了。但是,我们不能直接去掉,因为有可能存在入!=出的情况。也就是说,当我们如果直接减去的话,会使得网络流的流量不守恒了。那么,我们则需要加上附加流使得它达到一个平衡了,加多少呢?也就是每个点的出入流...原创 2020-02-21 14:02:27 · 188 阅读 · 0 评论