hdu3549Flow Problem(最大流模板题)
创始人
2024-02-06 21:43:37

题目链接:

http://acm.split.hdu.edu.cn/showproblem.php?pid=3549

题目大意:

n个点m条边,找到1到n使得流量最大。

题目思路:

最大流模板题,这里用到了Dinic算法,学习传送门--》https://comzyh.com/blog/archives/568/《--

代码:

#include 
using namespace std;  const int maxn=1000;  struct node{  int u,v,next,c;  
};  
node edge[maxn<<1];  
int head[maxn];  
int cnt;  
int dis[maxn];  
int n,m;//n是边的个数,m是顶点个数 
int ans; //最大流 void init(){  memset(head,-1,sizeof(head));  cnt=0;  memset(dis,-1,sizeof(dis));  ans=0;  
}  void add(int a,int b,int c){  //建立邻接表 edge[cnt].u=a;  edge[cnt].v=b;  edge[cnt].c=c;  edge[cnt].next=head[a];  head[a]=cnt++;  
}  int bfs()// 给各点分层,离源点的远近分  
{  memset(dis, -1, sizeof(dis));  queue q;  dis[1] = 0;  q.push(1);  int i;  int cur;  while(!q.empty())  {  cur = q.front();  q.pop();  for(i = head[cur]; i != -1; i = edge[i].next)  {  if(dis[edge[i].v] == -1 && edge[i].c > 0)  {  dis[edge[i].v] = dis[cur] + 1;  q.push(edge[i].v);  }  }  }  if(dis[m] < 0)  return 0;  return 1;  
}  int Find(int x,int low){//找增广  int a;  if(x==m) return low;  for(int i=head[x];i!=-1;i=edge[i].next){  int v=edge[i].v;  if(dis[v]==dis[x]+1 && edge[i].c>0 &&(a=Find(v,min(low,edge[i].c))))  {  edge[i].c -=a;  edge[i^1].c +=a;  return a;  }  }  return 0;  
}  void dinic(){  int temp;  while(bfs()){  
//        printf("%d\n",tmp);  
//        if(tmp==0) break;  temp=Find(1,0x3f3f3f3f);  ans+=temp;  }  // printf("%d\n",ans);  
}  int main(){
int t;cin>>t;
for(int i=1;i<=t;i++){   scanf("%d%d",&m,&n);int a,b,flow;  init();  for(int i=1;i<=n;i++){  scanf("%d%d%d",&a,&b,&flow);  //flow是权值。 add(a,b,flow);  add(b,a,0);  }  dinic();printf("Case %d: %d\n",i,ans);  }
return 0;  
}  

上一篇:kafka常用命令

下一篇:Java面试题相关

相关内容

热门资讯

春节发视频,别踩这些红线! 转自:漯河发布近几天视频大模型Seedance2.0火了据称“通过几句简短的提示词就能生成电影级的视...
【新春走基层·欢乐闹新春】芬芳... 春节临近,江西南昌市西湖区九洲公园迎春花市区域内,摆满鲜花的摊位已次第摆开,蝴蝶兰雅致、富贵竹青翠、...
发展优先与务实合作——慕安会上... (来源:上观新闻)在全球格局快速重塑、地缘政治竞争加剧的背景下,全球南方国家正以更积极务实的姿态参与...
新春走基层 | 腊月学“本事”... 春节的脚步日渐临近,大街小巷年味愈发浓郁,大红灯笼缀满枝头,往来行人拎着沉甸甸的年货,暖意融融。在胶...
小观看天丨风雨就位!注意添衣保... 气象万千,小观看天!小伙伴们,早上好!今天是2月15日,农历腊月二十八,星期日。春节假期第一天,风雨...