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

            gzwzm06

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              1 隨筆 :: 52 文章 :: 17 評論 :: 0 Trackbacks

            求最大權值的子樹

            dp[root][i] = MAX{dp[root][j] + dp[child][i – j]}

            其中 K >= i >= 2

            表示以root為根,節點數為i 的子樹的最大權值

             1#include <cstdio>
             2
             3const int SIZE = 101;
             4
             5struct TREE
             6{
             7    int m_arr[SIZE];
             8    int m_size;
             9    int m_value;
            10}
            tree[SIZE];
            11
            12int N, K;
            13int dp[SIZE][SIZE];
            14
            15inline int MAX(const int& a, const int& b)
            16{
            17    return (a > b ? a : b);
            18}

            19
            20void Init()
            21{
            22    int i;
            23    for ( i = 0; i < SIZE; ++i )
            24        tree[i].m_size = 0;
            25}

            26
            27void DFS( const int& root, const int& fat )
            28{
            29    int i, j, k;
            30
            31    dp[root][0= 0;
            32    dp[root][1= tree[root].m_value;
            33    for ( i = 2; i <= K; ++i )
            34        dp[root][i] = -1;
            35
            36    for ( i = 0; i < tree[root].m_size; ++i )
            37    {
            38        int x = tree[root].m_arr[i];
            39
            40        if ( x == fat )
            41            continue;
            42
            43        DFS( x, root );
            44
            45        for ( j = K; j >= 2--j )
            46        {
            47            int t = -1;
            48            for ( k = 1; k <= j; ++k )
            49            {
            50                if ( dp[root][k] == -1 || dp[x][j - k] == -1 )
            51                    continue;
            52                t = MAX( t, dp[root][k] + dp[x][j - k] );
            53            }

            54            dp[root][j] = t;
            55        }

            56    }

            57}

            58
            59void Solve()
            60{
            61    int ans = 0;
            62
            63    DFS( 0-1 );
            64
            65    for ( int i = 0; i < N; ++i )
            66        if ( ans < dp[i][K] )
            67            ans = dp[i][K];
            68
            69    printf("%d\n", ans);
            70}

            71
            72int main()
            73{
            74    //freopen("1.txt", "r", stdin);
            75
            76    int i, x, y;
            77
            78    while ( scanf("%d %d"&N, &K) != EOF )
            79    {
            80        Init();
            81
            82        for ( i = 0; i < N; ++i )
            83            scanf("%d"&tree[i].m_value);
            84
            85        for ( i = 0; i < N - 1++i )
            86        {
            87            scanf("%d %d"&x, &y);
            88            tree[x].m_arr[tree[x].m_size++= y;
            89            tree[y].m_arr[tree[y].m_size++= x;
            90        }

            91
            92        Solve();
            93    }

            94
            95    return 0;
            96}
            posted on 2009-05-05 09:39 閱讀(309) 評論(0)  編輯 收藏 引用 所屬分類: DP
            久久综合视频网站| 色8激情欧美成人久久综合电| 亚洲人成电影网站久久| 久久天天婷婷五月俺也去| 精品国产99久久久久久麻豆| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 国产精品一区二区久久| 国产国产成人久久精品| 久久久久久精品成人免费图片 | 久久这里只有精品久久| 亚洲一区精品伊人久久伊人| 久久久久亚洲AV无码永不| 国内精品伊人久久久久网站| 久久久久久精品免费看SSS| 国产日韩久久久精品影院首页| 久久亚洲精品无码VA大香大香| 久久精品男人影院| 久久久噜噜噜久久熟女AA片| 久久久噜噜噜久久中文字幕色伊伊| 亚洲精品高清国产一线久久| 久久精品成人欧美大片| 香蕉久久夜色精品国产小说| 人妻少妇精品久久| 久久精品国产精品国产精品污| 99久久精品国产一区二区| 久久精品无码一区二区日韩AV| 国产成人久久AV免费| 亚洲中文字幕久久精品无码喷水| 国产精品亚洲综合专区片高清久久久| 久久久久久毛片免费播放| 久久人人爽人人爽人人片AV麻烦 | 国产精品久久久久久影院 | 欧美久久综合九色综合| 91精品免费久久久久久久久| 72种姿势欧美久久久久大黄蕉| 亚洲中文精品久久久久久不卡| 欧美黑人激情性久久| 久久亚洲国产成人影院| 一本色道久久88综合日韩精品| 欧美麻豆久久久久久中文| 少妇久久久久久被弄到高潮|