hdu 3549 Flow Problem 【最大流】
2024-08-27 22:38:13
其实还是不是很懂dinic-----
抄了一个模板---
http://www.cnblogs.com/naturepengchen/articles/4403408.html
先放在这里~~~
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std; const int maxn = ;
const int INF = ( << ) - ; struct Edge{
int v,next,c;
}e[maxn]; int st,ed,lev[maxn],first[maxn],now[maxn],ecnt;
int n,m; void init(int a,int b){
st = a; ed = b;
memset(first,-,sizeof(first));
ecnt = ;
} void addedges(int u,int v,int c){
e[ecnt].next = first[u];
e[ecnt].v = v;
e[ecnt].c = c;
first[u] = ecnt++; e[ecnt].next = first[v];
e[ecnt].v = u;
e[ecnt].c = ;
first[v] = ecnt++;
} bool bfs(){
queue<int> q;
while(!q.empty()) q.pop();
q.push(st);
memset(lev,-,sizeof(lev));
lev[st] = ;
while(!q.empty()){
int x = q.front();q.pop();
for(int i = first[x];~i;i = e[i].next){
int v = e[i].v;
if(lev[v] < && e[i].c > ){
lev[v] = lev[x] + ;
q.push(v);
}
}
}
return lev[ed] != -;
} int dfs(int p,int minf){
if(p == ed || minf == ) return minf;
for(int &i = now[p];~i;i = e[i].next){
int v = e[i].v;
if(lev[v] == lev[p] + && e[i].c > ){
int d = dfs(v,min(e[i].c,minf));
if(d > ){
e[i].c -= d;
e[i^].c += d;
return d;
}
}
}
return ;
} int dinic(){
int max_flow = ,p1;
while(bfs()){
memcpy(now,first,sizeof(first));
while((p1 = dfs(st,INF)) > )
max_flow += p1;
}
return max_flow;
} int main(){
int T;
int kase = ;
scanf("%d",&T);
while(T--){
scanf("%d %d",&n,&m);
init(,n);
for(int i = ;i < m;i++){
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
addedges(a,b,c);
}
printf("Case %d: %d\n",++kase,dinic());
}
return ;
}
最新文章
- git检出与创建的过程
- 1 Two Sum
- 详解web.xml中元素的加载顺序
- ArrayList 和 LinkedList 的区别
- neon指令,注意事项
- hdu 3117 Fibonacci Numbers
- 使用Web Service进行网络编程-----Web Service简介
- Linux防火墙设置(转载)
- SQL Server 2012 Enterprise Core Edition和SQL Server 2012 Enterprise Edition的区别
- devexpress皮肤设置
- HDU2015校赛 The Country List
- VB.Net中点击按钮(Button)会重复提交两次表单
- Chapter 2 Open Book——35
- Python 数据分析包:pandas 基础
- postgresql跨服务器复制数据库
- Dubbo的三种连接方式
- gethostbyname(domain) 老是返回 NULL, 凌乱了
- 17秋 软件工程 Alpha 事后诸葛亮会议
- 强制SVN上传代码时添加日志
- colgroup中col定义表格单元格宽度