最大流模板

P3376 【模板】网络最大流

#include<bits/stdc++.h>
#define fo(i,a,b) for (ll (i)=(a);(i)<=(b);(i)++)
#define fd(i,b,a) for (ll (i)=(b);(i)>=(a);(i)--)
#define lc (o<<1)
#define rc ((o<<1)|1)
#define mk(x,y) make_pair((x),(y))
#define eb emplace_back
#define A puts("Yes")
#define B puts("No")
#define fi first
#define se second
using namespace std;
typedef double db;
typedef long long ll;
typedef unsigned long long ull;
typedef long long i64;
const ll inf=1ll<<60;
const ll mo1=1e9+9;
const ll mo2=1e9+7;
const ll P=131;
const ll Q=13331;
struct MF {
	const static int N=1e5+5;
	const static int M=1e6+5;
	const static int INF=1e9;
  	struct edge {
    	int v, nxt;
		ll cap, flow;
  	} e[M*2];

  	int head[N], tot = 0;

  	int n, S, T;
  	ll maxflow = 0;
  	int dep[N], cur[N];
  	MF(int nn,int s,int t)	{
  		n=nn;
  		S=s;
  		T=t;
  		memset(head, -1, sizeof head);
    	tot = 0;
 	}
  	void init() {
  		
    	memset(head, -1, sizeof head);
    	tot = 0;
  	}

	void addedge(int u, int v, int w) {
    	e[tot] = {v, head[u], w, 0};
    	head[u] = tot++;
    	e[tot] = {u, head[v], 0, 0};
    	head[v] = tot++;
  	}	

  	bool bfs() {
    	queue<int> q;
    	memset(dep, 0, sizeof(int) * (n + 1));

   		dep[S] = 1;
	    q.push(S);
	    while (q.size()) {
	    	int u = q.front();
	      	q.pop();
	      	for (int i = head[u]; ~i; i = e[i].nxt) {
	       		int v = e[i].v;
	        	if ((!dep[v]) && (e[i].cap > e[i].flow)) {
	          		dep[v] = dep[u] + 1;
	          		q.push(v); 
	        	}
	      	}
	    }
	    return dep[T];
	}

	ll dfs(int u, ll flow) {
		if ((u == T) || (!flow)) return flow;
	
		ll ret = 0;
	    for (int& i = cur[u]; ~i; i = e[i].nxt) {
			int v = e[i].v;
			ll d;
		    if ((dep[v] == dep[u] + 1) &&
		        (d = dfs(v, min(flow - ret, e[i].cap - e[i].flow)))) {
		        ret += d;
		        e[i].flow += d;
		        e[i ^ 1].flow -= d;
		        if (ret == flow) return ret;
		    }
	    }
	    return ret;
	}

  	void dinic() {
  		maxflow = 0;
    	while (bfs()) {
      		memcpy(cur, head, sizeof(int) * (n + 1));
      		maxflow += dfs(S, INF);
    	}
  	}
};
int n,m,s,t,x,y,z;
int main(){
//	freopen("data.in","r",stdin);

	scanf("%d %d %d %d",&n,&m,&s,&t);
	MF mf(n,s,t);
	
	fo(i,1,m) {
		scanf("%d %d %d",&x,&y,&z);
		mf.addedge(x,y,z);
	}
	
	mf.dinic();
	printf("%lld\n",mf.maxflow);
	

	return 0;
}
 
 
posted @   gan_coder  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
  1. 1 青春コンプレックス 結束バンド
  2. 2 ギターと孤独と蒼い惑星 結束バンド
  3. 3 星座になれたら 結束バンド
  4. 4 恋のうた (feat. 由崎司) 鬼頭明里
  5. 5 月と星空 カノエラナ
  6. 6 Cagayake!GIRLS[5人Ver.] (TV size Ver.) 桜高軽音部
  7. 7 不可思議のカルテ 不可思議のカルテ
  8. 8 優しさの理由 ChouCho
星座になれたら - 結束バンド
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 樋口愛

作曲 : 内藤英雅

もうすぐ時計は6時

时钟快要走到六点

もうそこに一番星

夜空已然出现了第一颗星

影を踏んで 夜に紛れたくなる帰り道

想踩着影子 混入那黑夜的归途

どんなに探してみても

无论我如何寻找

一つしかない星

仍只有一颗星星

何億光年 離れたところからあんなに輝く

从相距几亿光年的地方 散发出那样的光芒

いいな 君は みんなから愛されて

いいな 君は みんなから愛されて

いいな 君は みんなから愛されて

真好啊 你被大家所爱着

「いいや 僕は ずっと一人きりさ」

「并不是啊 我一直都孤身一人啊」

君と集まって星座になれたら

君と集まって星座になれたら

君と集まって星座になれたら

若能与你相聚化作星座

星降る夜 一瞬の願い事

在繁星降下的夜晚 将一瞬的愿望

きらめいて ゆらめいて 震えてるシグナル

对那闪烁着的 于空中摇曳颤抖的信号许下

君と集まって星座になれたら

若能与你相聚化作星座

空見上げて 指を差されるような

想化作他人仰望星空 所指向的那个星座

つないだ線 解かないで

请不要将那 连结你我的线解开

僕がどんなに眩しくても

无论我有多么耀眼

もうすぐ時計は8時

もうすぐ時計は8時

もうすぐ時計は8時

时钟快要走到八点

夜空に満天の星

夜空已有漫天繁星

何億光年 離れたところにはもうないかもしれない

可能和我们已然不是相距几亿光年了

月が綺麗で 泣きそうになるのは

月が綺麗で 泣きそうになるのは

月が綺麗で 泣きそうになるのは

月色真美 令我泫然欲泣

いつの日にか 別れが来るから

因为总有一天 将迎来别离

君と集まって星座になれたら

君と集まって星座になれたら

君と集まって星座になれたら

若能与你相聚化作星座

彗星みたい 流れるひとりごと

好似彗星一般的自言自语

消えていく 残像は 真夜中のプリズム

那消逝的残像 就好像深夜棱镜

君と集まって星座になれたら

若能与你相聚化作星座

切なる願い 誰かに届いたら

我衷心希望 能传达给某人

変われるかな 夜の淵を

是否能改变呢 即便是这

なぞるような こんな僕でも

好似夜之深渊的我

遥か彼方 僕らは出会ってしまった

遥か彼方 僕らは出会ってしまった

遥か彼方 僕らは出会ってしまった

我们于那遥远的彼方相遇

カルマだから 何度も出会ってしまうよ

因为这是我们的命运 所以我们将多次相遇

雲の隙間で

在那云彩的间隙中相遇

君と集まって星座になれたら

君と集まって星座になれたら

君と集まって星座になれたら

若能与你相聚化作星座

夜広げて 描こう絵空事

展开黑夜描绘天空

暗闇を 照らすような 満月じゃなくても

即便我们并非那照亮黑暗的满月

だから集まって星座になりたい

所以我想与你相聚化作星座

色とりどりの光 放つような

散发出流光溢彩的光芒

つないだ線 解かないよ

我绝不会将那 连结你我的线解开

君がどんなに眩しくても无论你将有多么耀眼

点击右上角即可分享
微信分享提示