hdu 1532 Drainage Ditches 最大流

來源:互聯網
上載者:User

題目 http://acm.hdu.edu.cn/showproblem.php?pid=1532

這是最大流的一個簡單題哦   我是用Edmond-Karp來做的哦   思想是每次找出一條最短路,然後在這條最短路裡找出一條邊最小的權值哦,

這條路上的邊全都都減去最小權值,也是更新哦。重複上述過程,直到沒有最短路徑出現哦。。。

具體看代碼

#include<iostream>#include<cstring>#include<cstdio>#include<queue>using namespace std;#define max 201int map[max][max];int p[max];int n,m;bool ek_bfs()  //不斷尋找最短路哦{    queue<int> que;    bool flag[max];    memset(flag,false,sizeof(flag));  //標記哦    memset(p,-1,sizeof(p));    //記錄    que.push(1);    flag[1]=true;    while(!que.empty())    {        int e=que.front();        if(e==m) return true;        que.pop();        for(int i=1;i<=m;i++)        {            if(map[e][i]&&!flag[i])            {                flag[i]=true;                p[i]=e;                que.push(i);  //入隊            }        }    }    return false;}void ek_max_flow(){    int u,flow_ans=0,mn;    while(ek_bfs())    {        mn=9999999;        u=m;        while(p[u]!=-1)  //找出最小的那條路哦        {            mn=mn>map[p[u]][u]?map[p[u]][u]:mn;            u=p[u];        }        flow_ans+=mn;        u=m;        while(p[u]!=-1)  //更新哦        {            map[p[u]][u]-=mn;            map[u][p[u]]+=mn;            u=p[u];        }    }    cout<<flow_ans<<endl;}int main(){    int i,j,t;    while(cin>>n>>m)    {        memset(map,0,sizeof(map));        while(n--)        {            cin>>i>>j>>t;            map[i][j]+=t;        }        ek_max_flow();    }    return 0;}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.