這是一道模板題。
給定 n 個點,m 條邊,給定每條邊的容量,求從點 s 到點 t 的最大流。
第一行四個整數 n、m、s、t。
接下來的 m 行,每行三個整數 u 、v 、c,表示 u 到 v ,流量為 c 的一條邊。
輸出點 s 到點 t 的最大流。
樣例輸入
7 14 1 7
1 2 5
1 3 6
1 4 5
2 3 2
2 5 3
3 2 2
3 4 3
3 5 3
3 6 7
4 6 5
5 6 1
6 5 1
5 7 8
6 7 7
樣例輸出 141
≤n≤10
6,1≤
m≤4×
106,0
≤c≤2
31−1
use dijstra, o(
fvlo
ge)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//#include
//#include
#include
using
namespace
std;
#define mp make_pair
#define pb push_back
#define se second
#define fi first
#define rep(i, n) for(int i = 0; i < n; ++i)
typedef
long
long ll;
typedef
unsigned
long
long ull;
typedef
double db;
typedef
long
double ldb;
typedef pair pii;
const
int mod = (int)1e9 + 7;
const
int inf = 0x3f3f3f3f;
const ll ll_inf = 0x3f3f3f3f3f3f3f3f;
const db pi = acos(-1.0);
const db eps = 1e-10;
/*const int maxs = 64 * 1024 * 1024;
char buf[maxs], *ch;
void read(int &x)
void read_init()
*/const
int maxv = 405;
const
int maxe = 15005;
int v, e;
struct edge
edge(const
int _to, const
int _cap, const
int _cost, const
int _nxt)
}dat[maxe<<1];
int head[maxv], tail;
void add_edge(int from, int to, int cap, int cost)
int pre[maxv], h[maxv], dist[maxv];
int min_cost_flow(int s, int t, int &f) }}
if(dist[t] == inf) return res; // return -1
for(int v = 0; v < v; ++v) h[v] += dist[v];
int d = f;
for(int v = t; v != s; v = dat[pre[v]^1].to)
f -= d;
res += d * h[t];
for(int v = t; v != s; v = dat[pre[v]^1].to)
}return res;
}int main()
int f = inf;
int min_cost = min_cost_flow(s, t, f);
printf("%d %d\n", inf - f, min_cost);
return
0;}
最小費用流
include include define maxn 61 define maxv maxn maxn 2 1 define maxe maxv 5 define oo 2147483647 define min a,b a b b a define maxq maxe using namespa...
最小費用流
int v 頂點數 vector g max v int dist max v 最短距離 int prev max v 最短路中前驅結點對應的點 int pree max v 最短路中前驅結點對應的邊 void addedge int from,int to,int cap,int cost 求從s...
最小費用流
acm模版 最小費用流 o v e f init network g g.build v,e call g.mincost s,t flow g.flow cost g.cost 注意 spfa增廣,實際複雜度遠遠小於o v e define typef int type of flow defin...