
最大流
文章平均质量分 74
# 最大流
黑夜和白天
过去无可挽回,未来可以改变
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最小割 ---- 2021 ccpc 威海 H city-safety(最大利润 = 最大收益 - 最小花费(最小割))
题目链接题目大意:一棵树,加强第 iii 个点有 wiw_iwi 的花费,而如果距离某个点 ≤p≤ p≤p 的所有点都加强了,则会有 vpv_pvp 的收益,求最大净收益。解题思路:树形dp做法想不明白为啥是对的??qwq大佬的代码仅供参考,有看懂的聚聚留言qwq#include<bits/stdc++.h>using namespace std;typedef long long ll;int main() { ios::sync_with_stdio(0原创 2021-11-26 10:41:44 · 2011 阅读 · 9 评论 -
最小费用最大流 ---- 2017icpc青岛现场赛 K Our Journey of Xian Ends (拆点控制原图点度 + 中间必经过的点设置成源点 + 起点设成汇点)
题目链接题目大意:题目贼恶心难读就是你出发地是"Xian"西安,现在你要出发到上海然后再去青岛,然后回到上海飞机场限制:就是每个机场只能降落和起飞一次上海的限制:上海有两个机场,叫虹桥和浦东机场,你要是要是降落在浦东机场只能到虹桥出发去青岛并且你最后还要回到虹桥再回到浦东!!如果是降落在虹桥就没有限制,你最后回到浦东机场就好了给你所有的航线信息:问你最小花费是多少?解题思路:首先要最小花费那么肯定要最小费用流对于每个飞机场只能起飞降落一次我们可以进行拆点进行限制:每个点uuu拆成u原创 2021-10-26 20:12:03 · 249 阅读 · 0 评论 -
有上下界网络流 ---- P4843 清理雪道(DAG图上最小路径重复边覆盖)【模板】有源汇上下界最小流
题目链接题目大意:解题思路:首先我们发现对于每条边至少要覆盖一次,最多覆盖无数次那么就有点像上下界网络流了[1,INF][1,INF][1,INF]的限制关系跑一边最小流就可以了!!#include <bits/stdc++.h>#define mid ((l + r) >> 1)#define Lson rt << 1, l , mid#define Rson rt << 1|1, mid + 1, r#define ms(a,原创 2021-09-01 09:50:33 · 156 阅读 · 0 评论 -
有上下界网络流 ---- Zoj3229 Shoot the Bullet|东方文花帖|【模板】有源汇上下界最大流
学习资料+题目链接题目大意:模板讲解#include <bits/stdc++.h>#define mid ((l + r) >> 1)#define Lson rt << 1, l , mid#define Rson rt << 1|1, mid + 1, r#define ms(a,al) memset(a,al,sizeof(a))#define log2(a) log(a)/log(2)#define lowbit(x) ((-x原创 2021-09-01 09:41:16 · 135 阅读 · 0 评论 -
最小割 ---- 集合冲突模型 ----- P1646 [国家集训队]happiness
题面:高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友。这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一对好朋友如果能同时选文科或者理科,那么他们又将收获一些喜悦值。作为计算机竞赛教练的scp大老板,想知道如何分配可以使得全班的喜悦值总和最大。题解:我们考虑用最小割解决问题.先把所有收益相加,再减去损失的代价。因为每个人只有两种选择就是很典型的最小割去解决二元关系集合冲突模型考虑用网络流求解,总量减去最小割即为答案。对于每原创 2021-07-15 18:40:31 · 131 阅读 · 0 评论 -
最大流 ---- 最大密度子图 ----- 2014-2015 ACM-ICPC, Asia Xian Regional Contest C The Problem Needs 3D Arrays
题目链接题目大意:就是给你一个全排列,现在叫你选出一个子序列sss,使得r(s)l(s)\frac{r(s)}{l(s)}l(s)r(s)最大?r(s)r(s)r(s)是这个子序列的逆序对数l(s)l(s)l(s)是这个子序列的长度n∈[1,100]n\in[1,100]n∈[1,100]看到这个分数和n这么小,就不自觉的联想到最大密度子图,但是图是怎么样的呢?图就是对于任意的i<j&&ai>aji<j\&\&a_i>a_ji&原创 2021-07-14 12:01:07 · 102 阅读 · 0 评论 -
最小割 ---- 最大密度子图(最大权值闭合子图)
最大密度子图定义一个无向图G=(V,E)G=(V,E)G=(V,E)的密度D=∣E∣∣V∣D=\frac{|E|}{|V|}D=∣V∣∣E∣。给出一个无向图G=(V,E)G=(V,E)G=(V,E),其具有最大密度子图G′=(V′,E′)G'=(V',E')G′=(V′,E′)称为最大密度子图,就是最大化D=∣E∣∣V∣D=\frac{|E|}{|V|}D=∣V∣∣E∣。子图的就是选这条边的时候一定会选这个边的两个点!解法:step1.二分二分答案g, 下界是1n\frac{1}{n}n1原创 2021-07-14 11:48:28 · 388 阅读 · 0 评论 -
最小割 ---- 二分图最大独立集(集合冲突模型) ---- 骑士共存 方格取数(网络流24题)
二分图独立集定理: 二分图最大独立集=n - 二分图最大匹配其实二分图独立集是特殊的一种最大权闭合子图。我们根据上文“收益”的思想,把选某个点的收益看为1,左部节点为正权点,右部节点为负权点.按照最大权闭合子图的方式建图,答案为正权和-最小割=n-最小割=n-最大流。我们发现把最大权闭合子图中INF的边换成1也不影响答案,因为图中其他边的容量都为1。这样图就变成了二分图匹配中的图,最大流=二分图最大匹配方格取数题目大意:现在就是每个方格里面都有一个数值,但是你选了一个方格之后,它上下左右的都不能原创 2021-07-13 15:23:36 · 298 阅读 · 0 评论 -
最小割 ---- 集合冲突模型 ---- AGC038 F - Two Permutations[详解]
题目链接题目大意:给出两个排列P,QP,QP,Q.要求构造两个排列A,B.A,B.A,B.要求:AiAiAi要么等于iii,要么等于PiPiPi;BiBiBi要么等于iii,要么等于QiQiQi最大化Ai≠BiAi≠BiAi=Bi的下标iii数量1e5我都不敢相信这也可以用网络流!!!这道题看起来无从下手那么我们就分类讨论来看一下但是发现直接讨论Ai≠BiA_i≠B_iAi=Bi很麻烦,那么问题先变成球最小化Ai=BiA_i=B_iAi=Bi再用nnn减掉就好了Pi=Q原创 2021-07-12 16:49:42 · 226 阅读 · 0 评论 -
最小割 ---- 集合冲突模型
集合冲突模型1.问题形式有 n 个物品和两个集合 S,T。将一个物品放入 S 集合会花费 ai,放入 T 集合会花费 bi。还有若干个形如 u,v,w 限制条件,表示如果 u 和 v 同时不在一个集合会花费 w。每个物品必须且只能属于一个集合,求最小的代价。2.解决方法我们对于每个集合设置源点 S 和汇点 T第 i 个点由 S 连一条容量为 bi的边、向 T 连一条容量为 ai的边。对于限制条件 u,v,w,我们在 u,v 之间连容量为 w 的双向边。注意到当 S 和 T 不相连时,S 能到原创 2021-07-12 11:07:36 · 329 阅读 · 0 评论 -
最大流 ---- 最大权值闭合子图 CodeForces - 1082G[把边抽象成点]
题目大意原题链接给定一幅图,求子图的最大权值,权值定义为边权和-点权和。输入先给你每个点权,然后在给每条边连的点和权值解题思路如果你对最大权值闭合子图有一个深入的了解的话你就会很快的建图如果没有你可以看看这篇博客最大权值闭合子图证明很明显这道题有一个很突出的特点就是你要是选择这条边这条边的两个端点都要被选中,那么就是很类似最大权值闭合子图中的如果这个点被选中这个点的后继全都要被选中,那么这里就要用一个技巧就是将边看成点,因为有m条边那么编号就从1到m,有n个点那么编号就从m+1到m+n原创 2020-05-16 09:53:35 · 188 阅读 · 0 评论 -
最大权值闭合子图的证明详解
最大权闭合图证明:首先引入结论,最小割所产生的两个集合中,其源点S所在集合(除去S)为最大权闭合图,接下来我们来说明一些结论。证明:最小割为简单割。引入一下简单割的概念:割集的每条边都与S或T关联。(请下面阅读时一定分清最小割与简单割,容易混淆)那么为什么最小割是简单割呢?因为除S和T之外的点间的边的容量是正无穷,最小割的容量不可能为正无穷。所以,得证。证明网络中的简单割与原图中闭合图存在一一对应的关系。(即所有闭合图都是简单割,简单割也必定是一个闭合图)。证明闭合图是简单割:如果闭合原创 2020-05-15 22:27:21 · 530 阅读 · 0 评论 -
最大流 ---- 最大不相交路径数 ---- P2766 最长不下降子序列问题(网络流24题)
题目链接最多不相交路径这种问题变化比较多,但都能表示成以下形式:已知一些路径,每个节点只能属于一条路径,求能选择多少条路径使它们不相交.主要的方法是拆点,将一个点拆成两个,然后连边,容量表示该点最多经过次数解题思路:对于第一问:我们直接暴力dp[i]表示以第i个数结尾的最长不下降子序列的个数就可以求出sdp[i]表示以第i个数结尾的最长不下降子序列的个数就可以求出sdp[i]表示以第i个数结尾的最长不下降子序列的个数就可以求出s对于第二问:目的是求出sss这种路径有多少条,那么就是典原创 2021-07-09 16:23:00 · 1131 阅读 · 0 评论 -
最大流 ---- 最小路径覆盖 ---- P2765魔术球问题(网络流24题)
题目链接解题思路:这题题目看起来根本不像网络流但是确实用网络流做的这个题目有两个限制每个柱子上面的球相邻两个的和必须是平方数球的编号必须是连续的首先我们只考虑第一个条件的话,我们怎么转化成图论问题那么就此题来看,经思考一会可发现这题的柱子并没有什么实际的作用,所有的操作都是关于珠子的编号的。那么我们可以以每一个珠子为点,若满足条件**(编号相加为平方数)就两两连边(从小连到大),那么就可得到这样一张图:对于在一条路径上面的点是可以放到一个柱子上面的,那么这个就是很典型的最小路径覆盖问原创 2021-07-09 12:31:27 · 121 阅读 · 2 评论 -
最大流 ---- 最小路径覆盖 ---- 最小路径覆盖问题[模板](网络流24题)
最小路径覆盖最小路径覆盖:在一个有向无环图中,找出最少的路径,使得这些路径经过了所有的点。最小路径覆盖分为最小不相交路径覆盖和最小可相交路径覆盖,区别是这些路径是否可以相交[路径相交就是不同路径经过同一个点]建图方法:把原图的每个点u拆成两个点u1,u2,如果有一条有向边(a,b),则连边(a2,b1),容易发现这是一个二分图,那么用下面的定理就可以求出答案定理: 最小路径覆盖=原图节点数-新图最大匹配数证明:一开始每个点都是一条路径,每次找一条匹配边,代表合并两条路径由于路径不相交(即每个点的原创 2021-07-08 16:29:53 · 339 阅读 · 0 评论 -
网络流FF,EK,dinicm, isap算法板子//带注释
#include <iostream>#include <cstdio>#include <stack>#include <sstream>#include <vector>#include <map>#include <cstring>#include <deque>#include <cmath>#include <iomanip>#include <queu原创 2020-05-09 15:32:56 · 379 阅读 · 0 评论