• <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)論排行榜

            久久综合九色综合欧美就去吻| 国产精品久久久久久五月尺| 香蕉久久夜色精品国产小说| 日本加勒比久久精品| 精产国品久久一二三产区区别 | 国产69精品久久久久APP下载| 一本色道久久88—综合亚洲精品| 日本三级久久网| 伊人情人综合成人久久网小说| 九九久久99综合一区二区| 最新久久免费视频| 久久亚洲高清观看| 亚洲中文字幕久久精品无码APP | 性欧美大战久久久久久久| 国产精品欧美久久久天天影视| 久久久噜噜噜久久中文字幕色伊伊| 国产精品久久久久影院嫩草| 亚洲精品乱码久久久久66| 久久精品国产99久久香蕉| 精品久久一区二区| 一本久久a久久精品亚洲| 久久亚洲欧洲国产综合| AAA级久久久精品无码区| 丁香五月网久久综合| 久久精品国产亚洲AV嫖农村妇女| A级毛片无码久久精品免费| 久久综合色之久久综合| 久久精品无码一区二区日韩AV| 94久久国产乱子伦精品免费| 久久免费线看线看| 日本久久久久久中文字幕| 99久久精品国产高清一区二区| 国产精品久久午夜夜伦鲁鲁| 伊人久久精品无码av一区| 伊人色综合久久天天人手人婷| 精品综合久久久久久98| 中文精品久久久久人妻不卡| 男女久久久国产一区二区三区| 亚洲熟妇无码另类久久久| 久久夜色精品国产欧美乱| 久久国产精品无码HDAV|