HDU-3549Flow Problem 最大流模板题
admin
2024-01-29 21:58:35

传送门

这里是Ford-Fulkerson写的最大流模板

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;#define lson (l , mid , rt << 1)
#define rson (mid + 1 , r , rt << 1 | 1)
#define debug(x) cerr << #x << " = " << x << "\n";
#define pb push_back
#define pq priority_queue#define Pll pair
#define Pii pair#define fi first
#define se second#define OKC ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
typedef long long ll;
typedef unsigned long long ull;
const int inf = 0x3f3f3f3f;/*-----------------show time----------------*/
const int maxn = 1e3+9;
struct node {int to,cap,rev;
};vectormp[maxn];
bool used[maxn];void add_edge(int from,int to,int cap)
{mp[from].pb((node){to,cap,(int)mp[to].size()});mp[to].pb((node){from,0,(int)mp[from].size()-1});   
}int dfs(int v,int t,int f)
{if(v==t)return f;used[v] = true;for(int i=0; i0){int d = dfs(e.to,t,min(f,e.cap));if(d>0){e.cap -= d;mp[e.to][e.rev].cap += d;return d;}}}return 0;
}int max_flow(int s,int t)
{int flow = 0;for(;;){memset(used,0,sizeof(used));int f = dfs(s,t,inf);if(f==0)return flow;flow += f;}
}
int main(){int t,n,m;scanf("%d", &t);for(int T=1; T<=t;T++){scanf("%d%d", &n, &m);for(int i=0;i<=n;i++)mp[i].clear();for(int i=1; i<=m; i++){int u,v,c;scanf("%d%d%d", &u, &v, &c);add_edge(u,v,c);}printf("Case %d: %d\n",T,max_flow(1,n));}return 0;
}

HDU 3549

相关内容

热门资讯

联环药业(600513.SH)... 格隆汇12月23日丨联环药业(600513.SH)公布,公司收到世界卫生组织(WHO)通知,公司原料...
交通运输部亮2025“成绩单”... 转自:北京日报客户端12月23日下午,国新办举行新闻发布会,介绍新时代交通运输服务经济社会高质量发展...
天创时尚(603608.SH)... 格隆汇12月23日丨天创时尚(维权)(603608.SH)公布,目前,公司控股股东及实际控制人正在积...
庞莱臣旧宅在湖州南浔开放 澎湃新闻获悉,位于浙江省湖州市的南浔古镇东大街的庞氏史迹陈列馆(庞莱臣旧宅)12月20日正式对外开放...
广东“十四五”期间开工改造11... 中新网广州12月23日电 (记者 许青青)据广东省住房和城乡建设厅23日介绍,“十四五”期间,广东省...