/*
最小费用最大流的模型
在保证流量最大的前提下,所需的费用最小,这就是最小费用最大流问题.
基本思路:
把弧<u,v>的单位费用c看作弧<u,v>的路径长度,每次找从源点s到汇点t长度最短(费用最小)的可增广路径进行增广。
1. 最小费用可增广路
2. 路径s到t的长度即[单位流量]的费用。
ps:是网络流EK算法的改进,在求增广路径的时候,spfa每次求权值最小的增广路。
ps:要注意一点,逆边cost[i][j] = -cost[j][i],不能忘了加上去。
*/
//#include<bits/stdc++.h>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include <cmath>
#include <map>
#include <queue>
#include <stack>
#include <set>
#include <algorithm>
using namespace std;
#define For(i,a,b) for(int (i)=(a);(i) < (b);(i)++)
#define rof(i,a,b) for(int (i)=(a);(i) > (b);(i)--)
#define IOS ios::sync_with_stdio(false)
#define lson l,m,r
最小费用最大流模板
最新推荐文章于 2020-05-20 12:02:01 发布