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

            misschuer

            常用鏈接

            統(tǒng)計

            積分與排名

            百事通

            最新評論

            hdu 1011 Starship Troopers

            http://acm.hdu.edu.cn/showproblem.php?pid=1011

            #include <iostream>
            #include <vector>
            #include <queue>
            #define MAXN 111
            using namespace std;
            #define MAX(a, b) a>b?a:b

            int
            val[MAXN][ 2 ];
            int
            dp[MAXN][MAXN];
            int
            n , c;
            bool
            vist[MAXN];

            struct
            ver {

            int
            v;
            int
            next;
            };


            ver e[MAXN*2];
            int
            p[MAXN], aid;

            void
            add(int a, int b) {

            e[aid].next = p[ a ];
            e[aid].v = b;
            p[ a ] = aid ++;

            swap(a, b);

            e[aid].next = p[ a ];
            e[aid].v = b;
            p[ a ] = aid ++;
            }


            //dp[ i ][ k ] 表示以i為根節(jié)點用了k個人去消滅蟲的最大值
            //dp[ 1 ][ c ] 為結(jié)果
            //當(dāng)trooper = 0 時, 即使不花費任何代價也拿不了, 和背包搞混了, 杯具

            void
            dfs (int x) {

            int
            i, j, k;
            int
            num = (val[ x ][ 0 ] + 19) / 20;
            for
            (i = num; i <= c; ++ i) {

            dp[ x ][ i ] = val[ x ][ 1 ];
            }


            vist[ x ] = true;

            for
            (i = p[ x ]; i != -1; i = e[ i ].next) {

            int
            y = e[ i ].v;

            if
            (vist[ y ]) continue;

            dfs (y);

            for
            (j = c; j >= num; -- j) {

            for
            (k = 1; j + k <= c; ++ k) {

            if
            (dp[ y ][ k ]) {

            dp[ x ][j + k] = MAX(dp[ x ][j + k], dp[ x ][ j ] + dp[ y ][ k ]);
            }
            }
            }
            }
            }


            int
            main() {

            int
            i, m;
            while
            (cin >> n >> c) {

            if
            (n == -1 && c == -1) break;

            memset(dp, 0, sizeof(dp));
            memset(vist, false, sizeof(vist));
            memset(p, -1, sizeof(p));
            aid = 0;

            for
            (i = 1; i <= n ; ++ i) {

            cin >> val[ i ][ 0 ] >> val[ i ][ 1 ];
            }


            m = n;
            while
            (-- m) {

            int
            a, b;
            cin >> a >> b;

            add(a, b);
            }


            if
            (c == 0) {

            cout << 0 << endl;
            continue
            ;
            }


            dfs (1);

            cout << dp[ 1 ][ c ] << endl;
            }

            return
            0;
            }

            posted on 2011-03-12 13:19 此最相思 閱讀(555) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久久久久久久久久精品尤物| 亚洲伊人久久精品影院 | 日本久久久久亚洲中字幕| 无码任你躁久久久久久老妇App| 久久精品国产精品亚洲人人| 久久精品国产欧美日韩| 亚洲综合久久夜AV | 久久婷婷国产综合精品 | 久久久无码精品亚洲日韩京东传媒| 日本欧美国产精品第一页久久| 精品久久久久久久国产潘金莲| 亚洲精品乱码久久久久久中文字幕| 国产亚洲欧美精品久久久| 99久久免费国产精品| 伊人情人综合成人久久网小说| 无码人妻精品一区二区三区久久| 欧美精品一区二区精品久久| 久久99这里只有精品国产| 久久精品国产亚洲AV大全| 国内精品伊人久久久久影院对白| 久久人人爽人人爽人人片av麻烦| 国产99精品久久| 亚洲va久久久久| 久久中文字幕一区二区| 亚洲国产成人久久综合野外| 久久精品毛片免费观看| 青青青青久久精品国产h久久精品五福影院1421| 国产精品一区二区久久精品涩爱| 久久99国产精一区二区三区| 超级碰碰碰碰97久久久久| 久久久久国产精品| 国内高清久久久久久| 国产AⅤ精品一区二区三区久久 | 精品久久久无码中文字幕| 麻豆AV一区二区三区久久| 香蕉久久永久视频| 91久久国产视频| 99久久中文字幕| 亚洲AV无码1区2区久久| 国产精品中文久久久久久久| 久久午夜综合久久|