FF求助
查看原帖
FF求助
972710
Under_Dream楼主2025/6/14 09:41
#include<bits/stdc++.h>
#define ll long long
#define INF 0x3f3f3f3f
using namespace std;
int m,n;
const int N=205;
vector<int> g[N];
struct node{
	int u,v,flow;
}edge[N*2];
bool vis[N];
int FF(int u,int minx){
	int id,x;
	if(u==n){
		return minx;
	}
	vis[u]=1;
	for(auto v:g[u]){
		if((edge[id==v].flow>0)&&(!vis[edge[v].v])){
			x=FF(edge[id].v,min(minx,edge[id].flow));
			if(x<=0) continue;
			edge[id].flow-=x;
			edge[id^1].flow+=x;
			return x;
		}
	}
	return 0;
}
int main(){
	cin>>m>>n;
	int cnt=0;
	for(int i=1;i<=m;i++){
		int s,e,c;
		cin>>s>>e>>c;
		g[s].push_back(cnt);
		edge[cnt++]={s,e,c};
		g[e].push_back(cnt);
		edge[cnt++]={e,s,0};
	}
	int ans=0,x;
	do{
		memset(vis,0,sizeof(vis));
		x=FF(1,2e9);
		ans+=x;
	}while(x);
	cout<<ans;
	return 0;
}
2025/6/14 09:41
加载中...