![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络流
lixuwei2333
这个作者很懒,什么都没留下…
展开
-
网络流最大流模板
#include <bits/stdc++.h>using namespace std;const int N = 1e4+100;int n,m,s,t,tot;int head[N];struct node{ int nxt,cap,to;}edge[int(2e5+100)];int cur[N],deep[N];void ae(int u,int v,...原创 2018-07-24 09:57:11 · 279 阅读 · 0 评论 -
数字梯形问题【网络流24题】【费用流】
题目链接:https://www.luogu.org/problem/P4013对于第一问把一个点拆成入点和出点,从入点到出点连一条容量1,费用0的边,表示每个点最多只能经过一次。从S连向第一层的各点的入点,容量1,费用为负的点权。从最后一层点的出点连向T,容量1,费用0。从各个点的出点连向下次能到达点的入点,容量1,费用为负的目标点点权。拆点保证点只经过一次,各边的容量1...原创 2019-08-16 09:31:02 · 127 阅读 · 0 评论 -
负载平衡问题【网络流24题】【流量平衡】
题目链接:https://www.luogu.org/problem/P4016首先,每个点最终都会变成平均值。计原值为s[i],平均值为aver。那么计算一下每个点与平均值的差,如果差为正,说明这个点有一些多余的货物可以给相邻的点,我们称这样的点为“小源点”。但是这样的点很多,在网络流模型里只有一个源点,所以我们就建立一个超级源点S。S连向所有这些“小源点”,容量为|s[i]-a...原创 2019-08-06 21:19:21 · 503 阅读 · 0 评论 -
运输问题【网络流24题】
题目链接:https://www.luogu.org/problem/P4015最小/最大费用模板题// luogu-judger-enable-o2#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)using namespace std;const int N...原创 2019-08-06 17:01:33 · 160 阅读 · 0 评论 -
骑士共存问题【网络流24题】
题目链接:https://www.luogu.org/problem/P3355首先,攻击关系不会出现奇环,所以可以对棋盘进行二分染色。然后就和方格取数那个题一样了。S连每个黑,边权为1.每个黑连其能攻击的点,边权为inf。每个白连T,边权为1。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = ...原创 2019-08-06 16:39:04 · 128 阅读 · 0 评论 -
分配问题【网络流24题】
题目链接:https://www.luogu.org/problem/P4014沙雕题,建图很简单。跑一遍最小费用,再把边权取反重跑一遍最小费用。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)using namespace std;const int N...原创 2019-08-06 15:16:49 · 229 阅读 · 0 评论 -
方格取数问题【网络流24题】
题目链接:https://www.luogu.org/problem/P2774最小割建图。先对格子分为黑白格,类似国际象棋。然后S连黑,边权为黑点点权。每个黑连周围4个白,边权为inf。每个白连T,边权为白点点权。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= ...原创 2019-08-06 14:44:28 · 184 阅读 · 0 评论 -
最小费用最大流
// luogu-judger-enable-o2#include <bits/stdc++.h>using namespace std;const int N = 1e4+100;int n,m,S,T,tot;int head[N];struct node{ int v,cap,cost,nxt;}edge[int(2e5+100)];int dis[N...原创 2019-02-22 17:32:22 · 824 阅读 · 0 评论 -
网络流关键边(增加路径容量后最大流提升)
题目链接 网络流结束后在残留网络上,从源点和汇点分别dfs,标记能够到达的点。假如某边为关键边,那么: 1.该边残留流量为0 2.S可以到u,且v可以到T。 #include <bits/stdc++.h>using namespace std;const int N = 110;int n,m,S,T,tot,k;int h...原创 2019-02-09 09:59:36 · 1470 阅读 · 0 评论 -
Dining (匹配,最大流)
题目链接 题目大意:奶牛喜欢一些种类的食物和饮料,给n种食物,m种饮料,问最多能喂多少奶牛(每种食物和饮料只能使用一次) 思路:把奶牛,食物,饮料都看做点,为了保证路线合法性,奶牛需要在中间,向2边构图。奶牛需要拆点。emmmm如果奶牛喜欢三样东西应该怎么构图?#include <bits/stdc++.h>using namespace std;const int ...原创 2018-07-24 16:34:29 · 356 阅读 · 0 评论 -
POJ - 3436 ACM Computer Factory(最大流,拆点)
题目链接 题目大意:要求经过每个点的流量不超过该点承载的流量上限,求最大流 思路:将a拆成a1和a2,a1作为输入端,a2作为输出端,a1-&gt;a2的边权为流量上限#include &lt;bits/stdc++.h&gt;using namespace std;const int N = 2*100;const int M = N*N;int n,m,s,t,tot;...原创 2018-07-24 15:03:29 · 144 阅读 · 0 评论 -
圆桌问题【网络流24题】
题目链接:https://www.luogu.org/problem/P3254二分图最大流然后看一下残留网络就行了#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)#define pii pair<int,int>#define mp make...原创 2019-08-16 10:09:57 · 121 阅读 · 0 评论