UVa 820 Internet Bandwidth (最大流模板題)

來源:互聯網
上載者:User

這道題要注意一下幾個問題:

第一、所有的路都是雙向,也兩個方向上的流量相等

第二、剛開始寫模板的時候,寫錯了,但是原因我還沒有想得很清楚

總之代碼如下:

#include <cstdio>#include <cstring>#include <queue>#include <algorithm>using namespace std;const int N = 110;const int INF = 10000;int S, T, M, n, flow[N][N], cap[N][N];int p[N], a[N];int maxFlow () {    queue <int> q;    memset( flow, 0, sizeof(flow));    int f = 0;    while ( 1 ) {        memset( a, 0, sizeof(a));        a[S] = INF;        q.push(S);        while ( !q.empty() ) {            int u = q.front(); q.pop();            //if ( u == T ) break;(開始的時候就把這個寫上了,但是wa了,去掉了就ac了 如果有朋友知道這是為什麼,請留言給我,感激不盡            for ( int v = 1; v <= n; ++v ) {                if ( !a[v] && cap[u][v] > flow[u][v] ) {                    p[v] = u;                    a[v] = min( a[u], cap[u][v] - flow[u][v]);                    q.push(v);                }            }        }        if ( a[T] == 0 ) break;        for ( int u = T; u != S; u = p[u] ) {            flow[p[u]][u] += a[T];            flow[u][p[u]] -= a[T];        }        f += a[T];    }    return f;}int main(){    int icase = 0;    while ( scanf("%d", &n), n ) {        scanf("%d%d%d", &S, &T, &M);        memset(cap, 0, sizeof(cap));        while ( M-- ) {            int s, t, c;            scanf("%d%d%d", &s, &t, &c);            cap[s][t] += c;            cap[t][s] = cap[s][t];        }        printf("Network %d\n", ++icase);        printf("The bandwidth is %d.\n\n", maxFlow());    }}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.