青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

強烈推薦此題。此題應用樹型DP解答。
首先明確一點,題中的環至少需要3個頂點。因此,對于樹中的每個頂點,有3種狀態。
f[x][0]表示以x為根的樹,變成每個頂點恰好在一個環中的圖,需要連的最少邊數。
f[x][1]表示以x為根的樹,除了根x以外,其余頂點變成每個頂點恰好在一個環中的圖,需要連的最少邊數。
f[x][2]表示以x為根的樹,除了根x以及和根相連的一條鏈(算上根一共至少2個頂點)以外,其余頂點變成每個頂點恰好在一個環中的圖,需要連的最少邊數。
有四種狀態轉移(假設正在考慮的頂點是R,有k個兒子):
A.根R的所有子樹自己解決(取狀態0),轉移到R的狀態1。即R所有的兒子都變成每個頂點恰好在一個環中的圖,R自己不變。


B.根R的k-1個棵樹自己解決,剩下一棵子樹取狀態1和狀態2的最小值,轉移到R的狀態2。剩下的那棵子樹和根R就構成了長度至少為2的一條鏈。

C.根R的k-2棵子樹自己解決,剩下兩棵子樹取狀態1和狀態2的最小值,在這兩棵子樹之間連一條邊,轉移到R的狀態0。

D.根R的k-1棵子樹自己解決,剩下一棵子樹取狀態2(子樹里還剩下長度至少為2的一條鏈),在這棵子樹和根之間連一條邊,構成一個環,轉移到R的狀態0。


這樣就完成了樹型DP。


/*************************************************************************
Author: WHU_GCC
Created Time: 2007-8-30 10:44:23
File Name: pku1848.cpp
Description: 
***********************************************************************
*/

#include 
<iostream>
#include 
<vector>
using namespace std;
#define out(x) (cout << #x << ": " << x << endl)
const int maxint = 0x7FFFFFFF;
typedef 
long long int64;
const int64 maxint64 = 0x7FFFFFFFFFFFFFFFLL;
template 
<class T> void show(T a, int n) {for (int i = 0; i < n; ++i) cout << a[i] << ' '; cout << endl; }
template 
<class T> void show(T a, int r, int l) {for (int i = 0; i < r; ++i) show(a[i], l); cout << endl; }

const int maxn = 110;
const int inf = 10000;

int n;
vector 
<int> v[maxn];
int f[maxn][3];
int used[maxn];

void dfs(int now)
{
    used[now] 
= 1;
    vector 
<int> child;
    
for (int i = 0; i < v[now].size(); i++if (!used[v[now][i]])
    
{
        dfs(v[now][i]);
        child.push_back(v[now][i]);
    }

    
if (child.size() == 0)
    
{
        f[now][
0= inf;
        f[now][
1= 0;
        f[now][
2= inf;
    }

    
// case 1
    {
        
int sum = 0;
        
for (int i = 0; i < child.size(); i++)
            sum 
+= f[child[i]][0];
        f[now][
1<?= sum;
    }

    
// case 2
    for (int i = 0; i < child.size(); i++)
    
{
        
int p = min(f[child[i]][1], f[child[i]][2]);
        
int sum = 0;
        
for (int j = 0; j < child.size(); j++if (j != i)
            sum 
+= f[child[j]][0];
        f[now][
2<?= sum + p;
        f[now][
0<?= sum + f[child[i]][2+ 1;
    }

    
// case 3
    for (int i = 0; i < child.size(); i++)
        
for (int j = i + 1; j < child.size(); j++)
        
{
            
int p1 = min(f[child[i]][1], f[child[i]][2]);
            
int p2 = min(f[child[j]][1], f[child[j]][2]);
            
int sum = 0;
            
for (int k = 0; k < child.size(); k++if (k != i && k != j)
                sum 
+= f[child[k]][0];
            f[now][
0<?= sum + p1 + p2 + 1;
        }

}


int dp()
{
    
for (int i = 1; i <= n; i++)
        f[i][
0= f[i][1= f[i][2= inf;
    memset(used, 
0sizeof(used));
    dfs(
1);
    
if (f[1][0== inf)
        
return -1;
    
return f[1][0];
}


int main()
{
    
while (scanf("%d"&n) != EOF)
    
{
        
for (int i = 0; i < n - 1; i++)
        
{
            
int t1, t2;
            scanf(
"%d%d"&t1, &t2);
            v[t1].push_back(t2);
            v[t2].push_back(t1);
        }

        printf(
"%d\n", dp());
    }

    
return 0;
}
posted on 2007-08-30 21:47 Felicia 閱讀(1063) 評論(4)  編輯 收藏 引用 所屬分類: 動態規劃
Comments
 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            在线亚洲美日韩| 久久米奇亚洲| 亚洲欧美文学| 亚洲人永久免费| 久久成人综合视频| 国产精品视频福利| 亚洲一区二区三区精品动漫| 亚洲人成在线播放| 欧美日韩国产经典色站一区二区三区| 久久精品国产99国产精品澳门| 欧美日韩在线直播| 一区二区三区国产精品| 亚洲精品一二三| 欧美另类videos死尸| 99在线精品视频在线观看| 亚洲激情视频网| 欧美激情aⅴ一区二区三区| 亚洲免费高清视频| 亚洲精品偷拍| 国产精品电影在线观看| 篠田优中文在线播放第一区| 欧美一区二区播放| 伊人成人在线视频| 欧美高清视频免费观看| 免费视频最近日韩| 一区二区久久久久久| 亚洲视频视频在线| 国产亚洲综合在线| 蜜臀va亚洲va欧美va天堂| 老妇喷水一区二区三区| 日韩午夜av| 亚洲女人天堂av| 一区二区三区自拍| 亚洲国产精品久久久久婷婷老年| 欧美sm重口味系列视频在线观看| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美国产大片| 欧美性生交xxxxx久久久| 久久国产视频网| 蜜桃av综合| 午夜精品av| 久久久亚洲欧洲日产国码αv| 亚洲国产精品成人一区二区| 亚洲欧洲日本国产| 国产午夜精品久久久| 欧美国产亚洲精品久久久8v| 欧美色网一区二区| 美国成人直播| 欧美日韩性生活视频| 久久久久久久综合狠狠综合| 欧美激情影院| 久久久久久69| 欧美日韩在线视频一区| 欧美在线电影| 欧美了一区在线观看| 久久久久久久波多野高潮日日| 欧美国产在线视频| 久久久99久久精品女同性| 免费在线观看成人av| 久久国产精品网站| 欧美日韩亚洲一区二区三区四区| 久久精品亚洲一区二区三区浴池 | 日韩午夜电影| 国产亚洲欧洲997久久综合| 亚洲精品国产无天堂网2021| 国产一区二区黄色| 在线视频你懂得一区| 亚洲精品美女在线| 久久久久久午夜| 欧美一区二区播放| 欧美日本一区| 欧美激情一区二区三区高清视频| 国产精品视频自拍| 亚洲毛片一区二区| 99精品免费视频| 美女图片一区二区| 久久在线视频| 国内精品国语自产拍在线观看| 一本大道久久a久久精品综合| 一区二区亚洲| 久久国产精品第一页| 欧美一区二区福利在线| 欧美视频在线免费看| 亚洲精选一区二区| av不卡免费看| 欧美日韩精品一区| 日韩午夜在线| 亚洲最新合集| 欧美日韩精品系列| 一本色道久久综合精品竹菊 | 久久久夜夜夜| 国产亚洲欧美一区二区| 亚洲欧美日韩国产精品| 欧美亚洲专区| 国产欧美日韩精品丝袜高跟鞋| 91久久久国产精品| av成人免费在线观看| 欧美精品在欧美一区二区少妇| 欧美电影免费观看网站| 91久久精品一区二区三区| 欧美成年人在线观看| 亚洲激情在线观看视频免费| 99国产精品久久久| 国产精品成人免费| 欧美一级一区| 欧美成人免费va影院高清| 亚洲精品社区| 欧美午夜精品久久久| 亚洲欧美日本另类| 久久综合九色综合欧美狠狠| 亚洲国产成人av在线| 欧美精品成人91久久久久久久| 亚洲欧洲一区二区在线观看 | 亚洲伦理自拍| 亚洲欧美日韩国产一区二区三区| 欧美日韩综合视频网址| 亚洲欧美韩国| 免费一级欧美片在线播放| 亚洲精品在线一区二区| 欧美午夜一区二区| 久久久精彩视频| 亚洲电影免费观看高清| 中文高清一区| 国产一区三区三区| 欧美高清在线一区| 亚洲无限av看| 欧美国产日韩二区| 亚洲欧美另类久久久精品2019| 国产欧美精品一区二区三区介绍| 欧美在线观看网址综合| 亚洲高清一区二| 久久大香伊蕉在人线观看热2| 国产在线日韩| 欧美特黄a级高清免费大片a级| 性久久久久久久| 亚洲人在线视频| 久久资源在线| 亚洲欧美在线免费| 亚洲高清在线播放| 国产精品色婷婷久久58| 欧美成人午夜77777| 欧美一区二区视频在线观看2020| 欧美福利视频在线观看| 欧美一区成人| 亚洲一区二区日本| 亚洲激情在线| 国产一区二区三区久久精品| 欧美日韩成人在线视频| 久久蜜臀精品av| 亚洲欧美日韩另类| 99精品99| 亚洲人成网站精品片在线观看| 久久精品成人欧美大片古装| 亚洲精品国精品久久99热一| 国产尤物精品| 国产精品午夜电影| 欧美精品一区二区三| 久久一区精品| 久久激情五月婷婷| 午夜欧美大尺度福利影院在线看| 亚洲福利在线观看| 免费亚洲一区二区| 久久人人看视频| 久久国产夜色精品鲁鲁99| 亚洲伊人观看| 亚洲视频在线免费观看| 亚洲精品在线视频观看| 最新国产精品拍自在线播放| 韩日精品在线| 国内精品久久国产| 激情成人中文字幕| 国产一区自拍视频| 韩日成人在线| 在线免费观看日本欧美| 国产专区一区| 在线播放日韩| 亚洲国产三级| 亚洲美女av网站| 亚洲剧情一区二区| 亚洲精品裸体| 亚洲少妇中出一区| 亚洲一级网站| 午夜精品久久久| 久久精品成人欧美大片古装| 久久久久久亚洲综合影院红桃| 久久福利影视| 免费一级欧美片在线播放| 欧美福利电影在线观看| 91久久国产精品91久久性色| 亚洲国产成人不卡| 99综合精品| 亚洲影院免费| 久久激情视频久久| 欧美不卡高清| 欧美午夜精品久久久久久人妖 | 国产午夜精品久久久久久免费视| 国产精品视频网站| 国产一级久久| 亚洲欧洲一区二区天堂久久 | 亚洲永久网站|