• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            A Za, A Za, Fighting...

            堅(jiān)信:勤能補(bǔ)拙

            PKU 1273 Drainage Ditches

            問題:
            http://acm.pku.edu.cn/JudgeOnline/problem?id=1273

            思路:
            第一道最大流,Edmonds-Karp算法
            參考了別人的代碼,其實(shí)自己也能寫出來,不過肯定沒有這么精致(*^__^*) 嘻嘻……
            從別人的代碼里學(xué)到很多,例如:
            一條路徑只需要pre[]數(shù)組進(jìn)行保存即可,路徑的殘留容量也可以邊擴(kuò)展(BFS)邊記錄,還有代碼居然就只需要一個(gè)殘留網(wǎng)絡(luò)的二維數(shù)組

            代碼:
             1 #include<stdio.h>
             2 #include<stdlib.h>
             3 #include<string.h>
             4 #define MAX_M 201
             5 #define INF 0x7FFFFFFF
             6 #define Min(a,b) ((a)<(b) ? (a) : (b))
             7 int n, m, source, sink;
             8 int pre[MAX_M]; /* excellent for path recording */
             9 int flow[MAX_M];
            10 int residual[MAX_M][MAX_M]; /* only need this matrix */
            11 int queue[MAX_M];
            12 
            13 int
            14 bfs() /* operation on the residual network */
            15 {
            16     int i, head, tail, cur;
            17     head = -1;
            18     tail = 0;
            19     memset(pre, -1sizeof(pre));
            20     for(i=1; i<=m; i++)
            21         flow[i] = INF;
            22     queue[tail] = source;
            23     pre[source] = 0;
            24     while(head < tail) {
            25         ++head;
            26         cur = queue[head];
            27         if(cur == sink)
            28             return flow[sink];
            29         for(i=1; i<=m; i++) {
            30             if(pre[i]!=-1 || !residual[cur][i])
            31                 continue;
            32             pre[i] = cur;
            33             flow[i] = Min(flow[cur], residual[cur][i]);
            34             ++tail;
            35             queue[tail] = i;
            36         }
            37     }
            38     return -1;
            39 }
            40 
            41 int
            42 edmonds_karp()
            43 {
            44     int tmp, next, cur, rt = 0;
            45     while(1) {
            46         tmp = bfs();
            47         if(tmp == -1/* there's no argment path */
            48             return rt;
            49         rt += tmp;
            50         cur = sink;
            51         while(cur != source) {
            52             next = cur;
            53             cur = pre[cur];
            54             residual[cur][next] -= tmp;
            55             residual[next][cur] += tmp;
            56         }
            57     }
            58 }
            59 
            60 int
            61 main(int argc, char **argv)
            62 {
            63     int i, f, t, c, ans;
            64     while(scanf("%d %d"&n, &m) != EOF) {
            65         memset(residual, 0sizeof(residual));
            66         for(i=1; i<=n; i++) {
            67             scanf("%d %d %d"&f, &t, &c);
            68             residual[f][t] += c; /* Attention: multiple lines */
            69         }
            70         source = 1;
            71         sink = m;
            72         ans = edmonds_karp();
            73         printf("%d\n", ans);
            74     }
            75 }

            posted on 2010-09-16 21:10 simplyzhao 閱讀(198) 評(píng)論(0)  編輯 收藏 引用 所屬分類: F_圖算法

            導(dǎo)航

            <2010年9月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789

            統(tǒng)計(jì)

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            日韩精品无码久久久久久| 久久香蕉一级毛片| 欧美亚洲国产精品久久高清| 午夜精品久久久久| 1000部精品久久久久久久久| 国产A级毛片久久久精品毛片| 久久久久久一区国产精品| 久久精品人人做人人爽电影| 久久福利青草精品资源站| 大香伊人久久精品一区二区| 国产精品久久99| 97香蕉久久夜色精品国产| 女人香蕉久久**毛片精品| 99久久精品国产一区二区| 久久青草国产精品一区| 亚洲狠狠婷婷综合久久久久 | 精品久久久久久亚洲| 97香蕉久久夜色精品国产 | 97久久综合精品久久久综合| 亚洲欧美一级久久精品| 国产精品久久一区二区三区 | 超级碰碰碰碰97久久久久| www亚洲欲色成人久久精品| 新狼窝色AV性久久久久久| 欧美黑人激情性久久| 久久精品二区| 色婷婷噜噜久久国产精品12p | 久久久久综合中文字幕| 国产精品免费久久久久影院| 久久精品国产网红主播| 欧美亚洲色综久久精品国产| 婷婷国产天堂久久综合五月| 无码任你躁久久久久久老妇| 久久久久亚洲精品天堂久久久久久| 国产精品免费久久久久电影网| 色综合久久综精品| 一本一道久久精品综合| 国产精品成人99久久久久91gav | 91久久精品视频| 久久综合给合综合久久| 久久久久亚洲AV综合波多野结衣|