网络流
Master.Yi
学习他人,提升自己;
提升自己,帮助他人。
展开
-
LOJ#6511. 「雅礼集训 2018 Day8」B【线性规划对偶问题,费用流】
题目描述:题目分析:求最大费用可行流即可。路径的长度指路径上的tit_iti之和。对偶理论:变量非负,约束不等式同号,下面这张图截自百度百科对偶理论LOJ上有不二分的做法,8是太懂。。虽然上面这个做法也很玄学Code:#include<bits/stdc++.h>#define maxn 125#define maxm 1505using namespace std;const int inf = 0x3f3f3f3f;int n,m,W,S,T;int fir原创 2020-06-17 20:09:20 · 633 阅读 · 0 评论 -
20200501 zr T3【二分图and一般图匹配 Dinic+带花树 / 随机匈牙利 / 暴力切换】
题目描述:题目分析:我辛辛苦苦打了一发带花树+Dinic:#include<bits/stdc++.h>#define maxn 1<<17#define maxm 15000005using namespace std;int n,N,k,m,bit[maxn],id[maxn];int mat[maxn];vector<int>A,B;namespace Blossom{ int F[maxn],typ[maxn],pre[maxn],q原创 2020-05-11 15:31:50 · 201 阅读 · 0 评论 -
Codeforces1250K. Projectors【网络流求时间占用问题的合法分配方案】
每个讲课必定要用一个高清投影仪,所以我们就是要求的就是在高清投影仪在某些区间必放后,普通投影仪的合法分配方案。因为研讨会既可以用高清投影仪,又可以用普通投影仪,而在当前时刻我们并不知道它到底是用哪一个更优。于是我们要想办法解决普通投影仪在讲课已经占用一部分高清投影仪后的分配问题。我们在考虑普通投影仪的分配方案时并不需要考虑每个讲课跨越的区间具体是什么,而只需要知道每个时刻被多少讲课所包含。比如 [1,4)[1,4)[1,4) 和 [1,3),[2,4)[1,3),[2,4)[1,3),[2,4) 是没原创 2020-05-09 09:40:11 · 253 阅读 · 0 评论 -
模拟赛20200228(yyq)【右链+dfs序,子树管辖,聚集水流问题】
T1:管理对998244853998244{\color{red}{8}}53998244853取模题解:知道至少要多少还是不好做,能不能把它转化成暂时只计算这么多个呢?是可以的,因为在一棵树的右链上接一棵子树不会改变原树的dfs序的,所以我们只需要记下右链的长度即可;因为限制关系形成了树形结构,记siz[i]siz[i]siz[i]为iii至少需要管辖的人数,记f[i][j]f[i]...原创 2020-03-02 00:01:59 · 269 阅读 · 0 评论 -
模拟赛20200210【扫描线(单调性),最小割,基环树染色(树哈希+Polya)】
T1:题解:C类点可以不用平衡树维护,因为B类点的a[i]a[i]a[i]一定是后缀最小值,所以只需要在询问的时候把a[j]<a[i]a[j]<a[i]a[j]<a[i]的点的贡献全部删掉就可以了。在计算C类点的贡献时只需要将a[j]a[j]a[j]到前缀最大值区间加1就可以了。考试的时候想到单调性但是搞来搞去没搞出来(被“浙江省选模拟赛”标题吓住导致轻易自闭。。),...原创 2020-02-10 23:27:21 · 567 阅读 · 0 评论 -
BZOJ4514: [Sdoi2016]数字配对【二分图性质,贪心费用流】
题目描述:有 n 种数字,第 i 种数字是 ai、有 bi 个,权值是 ci。若两个数字 ai、aj 满足,ai 是 aj 的倍数,且 ai/aj 是一个质数,那么这两个数字可以配对,并获得 ci×cj 的价值。一个数字只能参与一次配对,可以不参与配对。在获得的价值总和不小于 0 的前提下,求最多进行多少次配对。n≤200,0≤ai≤109,0≤bi≤105,∣ci∣≤10^5题目分...原创 2019-12-10 22:20:16 · 107 阅读 · 0 评论 -
BZOJ1143: [CTSC2008]祭祀river【最长反链】
题目描述:求有向无环图的最长反链(任意一点不能到达集合中另外一点)。n<=100,m<=1000题目分析:最长反链 = 最小链覆盖。画个图感性理解一下。再看看最长反链=最小链覆盖(证明+解析)最小链覆盖 = n - 最大匹配。相当于原来有n条链,然后一个匹配相当于将两条链首尾相接,由于链可相交,所以需要先做一个传递闭包。更详细的解析看这里。Upd:可以省去传递闭包,改为...原创 2019-12-10 20:17:47 · 176 阅读 · 0 评论 -
BZOJ3774: 最优选择【网络流多元关系转化为二元关系】
题目描述:n,m<=50n,m<=50n,m<=50题目分析:先考虑xxx和x1x_1x1的二元关系:如果xxx不放并且x1x_1x1为否,则失去vvv的收益然后考虑x1x_1x1与(xxx的相邻格子) yyy的二元关系:如果x1x_1x1为是,则yyy必须要选,如果yyy不选,将花费正无穷的代价。值得注意的是,x1x_1x1选是或否,所割的边的...原创 2019-12-09 22:53:42 · 348 阅读 · 0 评论 -
洛谷P1646 [国家集训队]happiness【网络流二元关系】
题目描述:高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友。这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一对好朋友如果能同时选文科或者理科,那么他们又将收获一些喜悦值。作为计算机竞赛教练的scp大老板,想知道如何分配可以使得全班的喜悦值总和最大。n,m<=100题目分析:不妨令上图中的a,ca,ca,c分别表...原创 2019-12-07 17:21:22 · 179 阅读 · 0 评论 -
BZOJ3218 A+B Problem【网络流+主席树优化建边】
题目描述:题目分析:每个点向S和T分别连bi和wi的边表示为黑色或白色。然后是二元关系建模。由于奇怪的代价是对一个区间的点产生的,所以建一个新点n+i,从i向n+i连容量为pi的边。如果从n+i向每个满足条件的白色点连边,那么边数是n2级别的,即使是O(玄学)的网络流也跑不过。。然而满足条件的点的特征是li<=aj<=ri,这令我们想到用线段树进行区间建边优化。然后出题人又要...原创 2019-12-07 11:03:16 · 312 阅读 · 0 评论 -
WC2007 剪刀石头布【补集转化+比赛问题费用流】
题目描述:N个点的竞赛图,已知一部分比赛结果,求安排剩下比赛的胜负情况,使得三元环的数量最大(A胜B,B胜C,C胜A)。N<=100题目分析:直接统计三元环并不好做,考虑非三元环的情况,必然是一个人胜2场,另一个人胜1场,第三个人胜0场。可以看出如果一个人最后胜的场次为wiw_iwi,则会贡献wi(wi−1)2\frac {w_i(w_i-1)}{2}2wi(wi−1)个非三元...原创 2019-12-05 21:34:49 · 211 阅读 · 0 评论 -
BZOJ1449: [JSOI2009]球队收益【胜负收益转化 费用流】
题目描述:题目分析:这个题困难在于胜者负者都会有收益,没办法用一个流量来表示。那么就先假设所有人在比赛中都是负,算出一个总收益,然后每一场必须有一个胜者,也就是说对于其中的一个人要将负变成胜,这样就可以用一个流量表示了。假设第iii个人当前胜了winiwin_iwini场,败了loseilose_ilosei场,现在将一个lose变成一个win,收益变化为:Ci∗(2∗win+1)−...原创 2019-12-05 20:06:24 · 148 阅读 · 0 评论 -
NOI2008 志愿者招募【神奇费用流/流量平衡/上下界】
题目描述:这个项目需要N 天才能完成,其中第i 天至少需要Ai个人。 一共有M 类志愿者可以招募。其中第i 类可以从第Si 天工作到第Ti 天,招募费用是每人Ci 元。满足需要的前提下最小化花费。n<=1000,m<=10000题目分析:法一:神奇费用流我们可以利用"流量最大"这个条件来强制使得每一天招募的人数达到要求:每一天向后一天连容量为inf−Aiinf-A_iinf...原创 2019-12-05 17:40:30 · 139 阅读 · 0 评论 -
[SCOI2007]修车【排队总时间最小化问题 费用流】
题目描述:同一时刻有N位车主带着他们的爱车来到了汽车维修中心。维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的。现在需要安排这M位技术人员所维修的车及顺序,使得顾客平均等待的时间最小。 说明:顾客的等待时间是指从他把车送至维修中心到维修完毕所用的时间。题目分析:要求总等待时间最小。一个技术人员依次修理各个顾客的车,如果按顺序表示修理这个车对总时间花费的贡献,则没...原创 2019-12-04 20:12:08 · 142 阅读 · 0 评论 -
POJ2396 Budget【矩阵行列和限制的上下界网络流】
题目描述:给出n*m的矩阵中每一行和每一列的和,以及每个元素的范围。求一个合法矩阵。n<=200,m<=20.题目分析:把输入看错的我自闭了一个下午QWQ。。注意0 y = 3表示的是第y列都是3而不是和为3。。给出了每个元素的范围容易想到上下界网络流。一开始我想把行列和矩阵点全部建出来,然后行列向矩阵点连边,发现不能保证和的限制。于是想到行用矩阵点的入边,列用出边,然后新...原创 2019-12-03 20:30:28 · 318 阅读 · 0 评论 -
[AHOI2014/JSOI2014]支线剧情【上下界最小费用可行流】
题目描述:洛谷题目链接有向无环图,经过一条边有一定的费用,每次从1号点出发走一条路径,可以在任一点结束并返回一号点,求把每条边至少经过一次的最小费用。题目分析:每条边至少经过一次,即下界为1的最小费用可行流,为满足流量守恒,让每个点向一号点连一条下界为0,上界inf,费用为0的边。然后虚拟源汇补流,跑最小费用流即可。Code:#include<cstdio>#includ...原创 2019-12-03 19:46:44 · 126 阅读 · 0 评论 -
上下界网络流知识简记及注意事项
无源汇上下界可行流:去掉下界流量,虚拟源汇补流。有源汇上下界最大流:连接(T,S,容量inf),虚拟源汇补流,记(T,S)的反向边残余容量为初始流,删掉(T,S)后求S到T的最大流,记为附加流,答案=初始流+附加流。有源汇上下界最小流:有两种做法,第一种与上面的上下界最大流类似,改为删掉(T,S)后求T到S的最大流,答案=初始流-附加流。第二种是先不连(T,S)的边,求一次虚拟源汇的最...原创 2019-12-02 22:04:12 · 119 阅读 · 0 评论 -
UVA11603 Its all about the Bandwidth【最小割逆推原图(构造Gomory-Hu树)】
题目描述:已知n个点两两之间的最小割,求一个边数最少的带权无向图使其满足已知条件。无解输出Impossible.n<=200,T[u][u]=0,T[u][v]=T[v][u]<=10000题目分析:肯定不可能用最大流做的啦胡乱揣测这个图可能就是棵树。我们尝试构造。首先最小割有一个性质:T[u][v]≥min(T[u][w1],T[w1][w2],…,T[wk−1][wk...原创 2019-12-02 16:34:44 · 166 阅读 · 0 评论 -
[ZJOI2011]最小割【最小割树】
题目描述:带权无向图,q次询问,每次询问有多少点对的最小割不超过xn<=150,m<=3000题目分析:建出最小割树后每个点dfs一下求出任意两点的最小割,排序之后upper_bound即可。我写的是论文里的Gusfield(等价流树)。递归版:#include<cstdio>#include<cctype>#include<cstrin...原创 2019-11-30 16:57:19 · 197 阅读 · 0 评论 -
HDU3691 Nubulsa Expo【全局最小割】
题目描述:n个点,m条边的无向图,给定源点,请选择汇点使得最小割最小,输出最小割的值。n<=300,m<=50000,边权<=5000000.题目分析:源点一定在全局最小割的某一侧,只要汇点选在另一侧就可以了,所以问题就是求全局最小割。全局最小割StoerWagner算法详解论文:《浅谈无向图最小割问题的一些算法及应用》:做n次最大邻接搜索,复杂度为O(nEl...原创 2019-11-30 14:42:09 · 167 阅读 · 1 评论 -
《胡伯涛: 最小割模型在信息学竞赛中的应用》摘录: 分数规划、最大密度子图改进解法、覆盖集与独立集互补定理、割的性质与技巧
分数规划:覆盖集与独立集互补定理:原创 2019-11-28 20:50:56 · 637 阅读 · 0 评论 -
BZOJ3232: 圈地游戏【最小割解决环限制】
题目描述:DZY家的后院有一块地,由N行M列的方格组成,格子内种的菜有一定的价值,并且每一条单位长度的格线有一定的费用。DZY喜欢在地里散步。他总是从任意一个格点出发,沿着格线行走直到回到出发点,且在行走途中不允许与已走过的路线有任何相交或触碰(出发点除外)。记这条封闭路线内部的格子总价值为V,路线上的费用总和为C,DZY想知道V/C的最大值是多少。题目分析:首先分数规划二分一个mid\...原创 2019-11-28 20:24:57 · 140 阅读 · 0 评论 -
BZOJ 2502: 清理雪道 【上下界网络流】
BZOJ题目传送门洛谷题目传送门题目分析:每条边流量下限为1,上限为∞\infty∞,建源点汇点向每个点连流量无穷大的边,跑有源汇上下界最小流即可。对这个的学习可以先看这个dalao博客:有上下界的网络流学习笔记(liu_runda)推荐看完第一个无源汇之后再配这个的图看一看就比较好理解了有上下界的网络流 学习笔记(Clove_unique)Code:#include&lt;cstd...原创 2019-03-11 18:46:57 · 166 阅读 · 0 评论 -
BZOJ 2400: Spoj 839 Optimal Marks 【按位最小割】
题目描述:定义无向图中的一条边的值为:这条边连接的两个点的值的异或值。定义一个无向图的值为:这个无向图所有边的值的和。给你一个有n个结点m条边的无向图。其中的一些点的值是给定的,而其余的点的值由你决定(但要求均为非负数),使得这个无向图的值最小。在无向图的值最小的前提下,使得无向图中所有点的值的和最小。题目分析:边的每个二进制位的贡献是独立的,所以可以按位处理一条边同样是一个二元关系,...原创 2019-03-15 10:05:07 · 204 阅读 · 0 评论 -
1565: [NOI2009]植物大战僵尸 【最大权闭合子图(网络流二元关系)】
题意:n*m的植物矩阵,每个植物有价值v,吃掉一颗植物之前必须先吃掉与它同一行右边的植物,同时植物间有保护关系(x,y),表示吃掉x之前必须先吃掉y。题目分析:其实这个题似乎就是 最大权闭合子图问题:考虑二元关系模型,x选则y必须选,也就是说x选、y不选的代价为inf那么ans = 正权点之和 - 不选的正权 - 选的|负权|可以按如图方式建边:(vx是正权,vy是负权)x选(...原创 2019-03-14 22:34:52 · 272 阅读 · 0 评论 -
BZOJ 1458: 士兵占领 【最大流/上下界最小流】
题意:有一个M * N的棋盘,有的格子是障碍。现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里不能放置士兵。我们称这些士兵占领了整个棋盘当满足第i行至少放置了Li个士兵, 第j列至少放置了Cj个士兵。现在你的任务是要求使用最少个数的士兵来占领整个棋盘。M, N <= 100, 0 <= K <= M * N题目分析:法一:最大流Code:...原创 2019-03-14 20:26:29 · 288 阅读 · 0 评论 -
网络流Dinic/SAP/费用流模板
Dinic:#include&lt;cstdio&gt;#include&lt;cctype&gt;#include&lt;cstring&gt;#include&lt;queue&gt;#include&lt;cmath&gt;#include&lt;algorithm&gt;#defin原创 2019-03-14 16:23:05 · 260 阅读 · 0 评论 -
BZOJ 3931: [CQOI2015]网络吞吐量【网络流】
题目分析:似乎很明显的是个最大流问题每个点有吞吐量限制,可以拆成两个点i和i+n,中间连一条容量为吞吐量的边(注意1和n的吞吐量限制是∞\infty∞)从n开始(或者1也可以)跑最短路得到dis数组,如果dis[u]==dis[v]+w[u][v] (具体方向根据代码而定),就从u+n向v连一条容量为inf的边然后从1到n+n跑最大流。。。然后。。。我干了什么?后来看了看,我把D...原创 2019-03-12 10:52:21 · 258 阅读 · 0 评论 -
BZOJ 2095: [Poi2010]Bridges 【二分+混合图欧拉回路】
题目描述:nnn个点mmm条边的连通图,每条边有正向和反向两个权值,无重边自环,求一条欧拉回路使得最大边权值最小题目分析:很容易想到二分答案后取出可行边再看能否构成欧拉回路。。然而。。又有有向边又有无向边是什么鬼??于是有神犇发明了混合图欧拉回路 −&gt;-&gt;−> 混合图的欧拉回路学习然后。。打代码的时候注意一下:二分的下界是每条边小的那个权值的最大...原创 2019-03-12 16:25:18 · 189 阅读 · 0 评论 -
BZOJ 3894: 文理分科【最小割限制收益冲突】
题目分析:应该算是最小割的套路题吧。先把所有收益统计到sum中,再看要损失掉哪些收益(使割掉的边最小)。每个点文理冲突,所以从SSS向(i,j)(i,j)(i,j)连容量为art[i][j]art[i][j]art[i][j]的边,从(i,j)(i,j)(i,j)向TTT连容量为science[i][j]science[i][j]science[i][j]的边。两条边必须割掉其中一条sa...原创 2019-03-12 18:37:25 · 169 阅读 · 0 评论 -
BZOJ 2039: [2009国家集训队]employ人员雇佣 【最小割二元关系】
BZOJ传送门洛谷传送门题目分析:经理xxx和经理yyy之间显然是一个二元关系。如果能够阅读下面这篇论文再好不过了:《浅析一类最小割问题》 湖南师大附中 彭天赐把割掉边a看作选x,割掉边c看作不选x那么不同的选择对应不同的割边方案及代价先把答案加上2E[x][y]2E[x][y]2E[x][y]表示总利润,再减去花费和必须舍弃的利润就是答案x选,y选,有花费,无损失:a+...原创 2019-03-13 10:34:40 · 204 阅读 · 0 评论 -
BZOJ 3275: Number【奇偶二分图最小割】
题目分析:两个点同时选会有inf的代价,需要满足二分图性质因为两个偶数的gcd不为1两个奇数的平方和不可能是完全平方数,因为奇数可以写成2k+1, 模4余1,两个的和模4余2,而偶数的平方模4余0,奇数平方模4余1,所以不可能是平方数所以两个不能同时选的数一定是一奇一偶,二分图,加上权值跑最小割即可#include&amp;lt;cstdio&amp;gt;#include&amp;lt;cctype&amp原创 2019-03-13 16:53:56 · 146 阅读 · 0 评论 -
省选模拟 集训试题0403 矩阵【二分答案+上下界网络流】
题面:二分答案,那么每一行每一列的B矩阵的和就有一个范围[sum−mid,sum+mid][sum-mid,sum+mid][sum−mid,sum+mid]sumsumsum为这一行或这一列A矩阵的和。可以看出这是符合二分性质的,只需要判断是否可行。B矩阵的每个点是[L,R],行和列和有上下界限制,上下界网络流模板。Code:#include<cstdio>#in...原创 2019-04-03 17:37:27 · 167 阅读 · 0 评论 -
BZOJ 4657: tower【路径最小割约束】
题面:DescriptionNick最近在玩一款很好玩的游戏,游戏规则是这样的:有一个n*m的地图,地图上的每一个位置要么是空地,要么是炮塔,要么是一些BETA狗,Nick需要操纵炮塔攻击BETA狗们。攻击方法是:对于每个炮塔,游戏系统已经给出它可以瞄准的方向(上下左右其中一个),Nick需要选择它的攻击位置,每一个炮塔只能够攻击一个位置,炮塔只能够向着它的瞄准方向上的某个位置发动攻...原创 2019-04-20 16:36:39 · 282 阅读 · 0 评论 -
BZOJ1797: [Ahoi2009]Mincut 最小割 【网络流】
题目传送门题目描述:网络流,n个点,m条有向边组成一张图,每条边有权值(流量)ci,给出源点,汇点,对于每条边,回答两个问题:是否存在一个最小割包含这条边是否任意一个最小割都包含这条边题目分析:最小割的可行边(两端点记为u,v):被某一种最小割方案包含的边。充要条件:1.满流。2.在残余网络中找不到u到v的路径。若不满流显然可以找到另一条更小的满流的限制流量的边。若满流但在...原创 2019-03-02 11:51:29 · 174 阅读 · 0 评论