• <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年6月>
            303112345
            6789101112
            13141516171819
            20212223242526
            27282930123
            45678910

            統計

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久精品国产91久久综合麻豆自制 | 性高湖久久久久久久久| 久久国产成人午夜AV影院| 国内精品久久久久影院免费| 麻豆一区二区99久久久久| 亚洲中文久久精品无码| 人妻少妇久久中文字幕 | 久久精品国产亚洲AV蜜臀色欲| 久久男人中文字幕资源站| 狠狠人妻久久久久久综合蜜桃| 久久99精品国产99久久6| 久久涩综合| 久久天天躁狠狠躁夜夜avapp| 久久精品日日躁夜夜躁欧美| 亚洲国产精品一区二区久久hs| 人妻精品久久无码区| 久久精品国产精品青草| 国产巨作麻豆欧美亚洲综合久久 | AV无码久久久久不卡蜜桃| 色欲综合久久躁天天躁蜜桃| 人妻无码久久一区二区三区免费| 99久久精品午夜一区二区| 99久久人人爽亚洲精品美女| 日本久久中文字幕| 午夜精品久久久久久毛片| 亚洲一区二区三区日本久久九| 久久精品国产亚洲Aⅴ香蕉| 久久99精品国产麻豆宅宅| 久久精品国产精品国产精品污 | 久久婷婷是五月综合色狠狠| 久久久久久亚洲Av无码精品专口| 国内精品久久久久久中文字幕| 久久国产劲爆AV内射—百度| 丰满少妇人妻久久久久久4| 伊人久久国产免费观看视频| 色成年激情久久综合| 日产精品久久久久久久| 国产女人aaa级久久久级| 久久婷婷五月综合色奶水99啪| 色综合久久久久综合99| 久久99毛片免费观看不卡|