zoukankan      html  css  js  c++  java
  • 网络流—最大流

    因为开学了,感觉自己懒了很多,很久都没有写博客了。是时候改变一下自己了

    今天学了一下网络流的最大流,做了一下水题,慢慢找回感觉,继续ACM

     1 /*HDU 3549*/
     2 #include <iostream>
     3 #include <cstdio>
     4 #include <queue>
     5 #include <algorithm>
     6 #include <string.h>
     7 using namespace std;
     8 const int maxm = 20;
     9 int n,m;
    10 int map[maxm][maxm];
    11 bool vis[maxm];
    12 int pre[maxm];
    13 bool bfs(int s,int t){
    14     memset(vis,0,sizeof(vis));
    15     memset(pre,0,sizeof(pre));
    16     queue<int> q;
    17     q.push(s);
    18     vis[s]=1;
    19     pre[s]=s;
    20     while(!q.empty()){
    21         int p=q.front();
    22         q.pop();
    23         for(int i=1;i<=n;i++){
    24             if(map[p][i]>0&&!vis[i]){
    25                 vis[i]=1;
    26                 pre[i]=p;
    27                 if(i==t)return true;
    28                 q.push(i);
    29             }
    30         }
    31     }
    32     return false;
    33 
    34 }
    35 int EK(int s,int t){
    36     int maxd=0,d;
    37     while(bfs(s,t)){
    38         d=1<<30;
    39         for(int i=t;i!=s;i=pre[i])d=min(d,map[pre[i]][i]);
    40         for(int i=t;i!=s;i=pre[i]){
    41             map[pre[i]][i]-=d;
    42             map[i][pre[i]]+=d;
    43         }
    44         maxd+=d;
    45     }
    46     return maxd;
    47 }
    48 int main(){
    49     int t;
    50     scanf("%d",&t);
    51     for(int j=1;j<=t;j++){
    52         scanf("%d%d",&n,&m);
    53         memset(map,0,sizeof(map));
    54         int u,v,w;
    55         for(int i=0;i<m;i++){
    56             scanf("%d%d%d",&u,&v,&w);
    57             map[u][v]+=w;
    58         }
    59         printf("Case %d: %d
    ",j,EK(1,n));
    60     }
    61     return 0 ;
    62 }
  • 相关阅读:
    2-4 递增链表的插入 链表
    KMPnext数组自看
    Shortest Prefixes POJ
    Xor Sum HDU
    Immediate Decodability HDU
    Repository HDU
    "strcmp()" Anyone? UVA
    Remember the Word UVALive
    A Magic Lamp HDU
    Check Corners HDU
  • 原文地址:https://www.cnblogs.com/Mr-Xu-JH/p/4067123.html
Copyright © 2011-2022 走看看