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

            Why so serious? --[NKU]schindlerlee

            2010年1月30日星期六.sgu143 樹狀動態(tài)規(guī)劃

            2010年1月30日星期六.sgu143 樹狀動態(tài)規(guī)劃
            sgu143:Tree DP


            題目給出n(1 <= n <= 16 000)個點,n-1條邊,每個點都有一個權(quán)值,求最大連通子圖。

            由于題目給出的圖邊比點少一個,隨意也就是一棵樹,所以題目所求的也就變成了最大連通子樹。

            可以深搜,每個點的的最大連通子樹的權(quán)等于這個點的權(quán)值+它所有未訪問鄰接點的正權(quán)和。

             1 const int N = 16100;
             2 int n,val[N],vis[N],res;
             3 vector<int> g[N];
             4 //http://www.shnenglu.com/schindlerlee
             5 int dfs(int u)
             6 {
             7   vis[u] = true;
             8   int sz = g[u].size(),i, cur = val[u],tmp;
             9   for (i = 0;i < sz;i++) {
            10       if (!vis[g[u][i]] && (tmp = dfs(g[u][i])) && tmp > 0) {
            11           cur += tmp;
            12       }
            13   }
            14   if(cur > res) { res = cur; }
            15   return cur;
            16 }

            res 初值為-inf,最后res就是結(jié)果。



            posted on 2010-01-30 16:18 schindlerlee 閱讀(1292) 評論(0)  編輯 收藏 引用 所屬分類: 解題報告

            久久婷婷国产综合精品| 婷婷国产天堂久久综合五月| 久久国产精品成人片免费| 久久精品国产亚洲av麻豆小说| 99久久精品国产高清一区二区| 久久久亚洲精品蜜桃臀| 久久久国产99久久国产一| 久久精品国产99久久久| 亚洲国产一成久久精品国产成人综合| 亚洲精品乱码久久久久久自慰| 国产精品久久国产精品99盘| 欧美久久久久久| 精品久久久久中文字| 亚洲AV无码久久精品色欲| 久久久久无码专区亚洲av| 久久精品国产亚洲av影院| 午夜福利91久久福利| 久久精品国产91久久综合麻豆自制| 99精品国产免费久久久久久下载| 7777久久亚洲中文字幕| 中文无码久久精品| 亚洲伊人久久综合中文成人网| 91精品免费久久久久久久久| 亚洲国产精品久久电影欧美| 亚洲国产天堂久久综合| 九九久久精品无码专区| 成人久久综合网| 2020久久精品国产免费| 久久男人Av资源网站无码软件| 色妞色综合久久夜夜| 亚洲欧美久久久久9999| 午夜精品久久久久成人| 无码精品久久一区二区三区 | 九九热久久免费视频| 国产成人精品久久一区二区三区 | 亚洲精品乱码久久久久久久久久久久 | 狠狠综合久久综合88亚洲| 精品欧美一区二区三区久久久| 久久久久久伊人高潮影院| 亚洲中文字幕伊人久久无码| 久久国内免费视频|