网络流
网络流相关
谁是凶手1703
这个作者很懒,什么都没留下…
展开
-
EK求最大流
不断的bfs找增广路径、并且记录,然后处理#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 1010, M = 20010, INF = 1e8;int n, m, S, T;int h[N], e[M], f[M], ne[M], idx;int q[N], d[N], pre[N];bool st[N];..原创 2020-09-29 12:59:23 · 86 阅读 · 0 评论 -
二分图的多重匹配问题【园桌问题】【同一公司的人在不同桌子上】【源点限制公司人数】【汇点限制桌位数】
二分图的多重匹配问题题目:圆桌问题有一些公司,每个公司有一些员工,还有一些圆桌,每个公司里面的员工分配到不同的园桌,每个圆桌有位置上限。建图每个公司里面的人分配到不同的桌子,求最大匹配数,抽象为二分图的多重匹配问题。每个公司抽象出点,然后在每个桌子上连边,意味着:这个公司向这个桌子分配一个人。每个公司有人数限制:流网络里面流入这个点的流量为这个人数每个桌子有座位限制:流网络流出这个座位的流量有限制建立源点:源点到每个公司的流量为这个公司的人数建立汇点:每个桌子到汇点的流量为这个桌子的座位数原创 2020-12-03 13:08:35 · 248 阅读 · 0 评论 -
网络流【二分图建图】【输出匹配=边是不是满的】
网络流-二分图求二分图的最大匹配,建图,网络流:源点、汇点。求最大匹配,就是求这个流网络的整数值最大流,使用Dinic求整数值最大流 (算法导论)输出匹配的话:考虑这个边是不是满的就可以了首先这个边是正向边然后枚举正向边,e[i] 的编号属于右边的集合然后,找到e[i]的前面的点,就是e[i^1]代码#include <iostream>#include <cstring>#include <algorithm>using namespace原创 2020-12-03 11:28:49 · 186 阅读 · 0 评论 -
网络流板子1【无源汇上下界可行流】【有源汇上下界最大流】【有源汇上下界最小流】
无源汇上下界可行流题意给定一个包含 n 个点 m 条边的有向图,每条边都有一个流量下界和流量上界。求一种可行方案使得在所有点满足流量平衡条件的前提下,所有边满足流量限制。代码#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 210, M = (10200 + N) * 2, INF = 1e8;int n, m, S原创 2020-12-22 19:26:14 · 288 阅读 · 1 评论 -
秘密挤奶机【图中不重复K条路的最大值中最小值】【网络流最大流判定】
图中不重复K条路的最大值中最小值题意无向图中起点到终点找出不重复的K条路,求出这K条路中的最长路径的最小值。思路最大中的最小。看能不能二分。二分最长路径,二分取值mid,若judge函数,可以定义为能不能找出K条路。0-mid中的路径,mid值越大越可能找出K条路现在的问题就是:能不能用最大流判断出0-mid长度走出K条路处理每次把一条边中权重小于mid的边,f[i] = 1,else f[i]=0。然后走网络流,因为容量为1,那么这些路肯定不重复。代码#include<iost原创 2020-12-22 20:53:58 · 221 阅读 · 0 评论 -
网络战争【分数规划】【网络流最小割】
网络战争题意思路先分数规划,转换为在图中跑最小割,这个题的边权可能为负数,因此我们把负数边都选上,然后在正数边权中跑最小割。每次二分分数规划mid值,我们把f[] 流量数组处理就行了代码#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 110, M = 810, INF = 1e8;const double eps原创 2020-12-23 23:11:11 · 234 阅读 · 0 评论