• <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...

            堅信:勤能補拙

            PKU 1273 Drainage Ditches

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

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

            代碼:
             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 閱讀(194) 評論(0)  編輯 收藏 引用 所屬分類: F_圖算法

            導航

            <2010年10月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            統計

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲AV无码久久精品狠狠爱浪潮| 国产精品熟女福利久久AV| 狠狠综合久久综合88亚洲| 久久亚洲精品国产精品| 狠狠色丁香婷综合久久| 久久精品女人天堂AV麻| 国产69精品久久久久APP下载| 国产精品99久久免费观看| 国产农村妇女毛片精品久久| 精品国产乱码久久久久软件| 精品国产VA久久久久久久冰| 国产精品成人久久久久三级午夜电影| 亚洲а∨天堂久久精品9966| 久久精品九九亚洲精品| 久久精品?ⅴ无码中文字幕| 亚洲人成精品久久久久| 国产精品无码久久四虎| 亚洲午夜久久久久久久久电影网| 97精品国产97久久久久久免费| 国产精品久久久久久久人人看| 亚洲国产成人久久综合碰碰动漫3d| 亚洲欧美国产日韩综合久久 | 久久精品国产99久久丝袜| 久久久久亚洲AV片无码下载蜜桃| 国产精品一区二区久久| 欧美国产成人久久精品| 94久久国产乱子伦精品免费| 久久久久亚洲AV无码麻豆| 亚洲国产精品无码久久青草| 91精品国产高清久久久久久91 | 国产精品久久久久jk制服| 亚洲午夜精品久久久久久浪潮| 国产精品毛片久久久久久久| 久久WWW免费人成一看片| 久久久WWW免费人成精品| 国产精品久久久久久久久免费| 思思久久精品在热线热| 色婷婷狠狠久久综合五月| 四虎国产永久免费久久| 国产一级做a爰片久久毛片| 久久亚洲私人国产精品vA|