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

            導航

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

            統計

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            伊人久久五月天| 国内精品久久久久久野外| 国产激情久久久久影院老熟女| 久久久久国产精品| 免费一级做a爰片久久毛片潮| 伊人久久综合成人网| 99久久婷婷国产综合亚洲| 国产高潮国产高潮久久久91 | 热久久国产欧美一区二区精品| 久久亚洲AV无码精品色午夜| 久久久亚洲欧洲日产国码aⅴ| 久久99精品国产麻豆不卡| 久久精品青青草原伊人| 99久久99久久精品国产| 久久亚洲精品中文字幕| 亚洲成av人片不卡无码久久| 免费精品99久久国产综合精品| 国内精品久久久久影院薰衣草| 精品久久久久久无码免费| 亚洲AV日韩AV永久无码久久| 久久综合九色综合欧美就去吻| 国产精品青草久久久久婷婷| 亚洲午夜久久久久久久久电影网| 久久国产精品免费一区二区三区 | 日韩精品久久久久久| 亚洲av成人无码久久精品| 午夜精品久久久久久影视777| 色综合久久最新中文字幕| 国产精品久久久久天天影视| 久久免费的精品国产V∧| 亚洲va久久久噜噜噜久久| 亚洲国产精品18久久久久久| 中文字幕无码精品亚洲资源网久久| 亚洲国产成人久久综合一区77| 久久久久国产精品麻豆AR影院 | 久久丫精品国产亚洲av| 99久久免费国产精品特黄| 亚洲午夜无码久久久久小说| 麻豆国内精品久久久久久| 亚洲人成网站999久久久综合| 一本综合久久国产二区|