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

強烈推薦此題。此題應用樹型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>
            国产精品入口麻豆原神| 欧美丰满少妇xxxbbb| 欧美精品 日韩| 久久综合色婷婷| 久久激情视频| 久久青青草原一区二区| 亚洲欧美视频在线观看| 亚洲综合电影| 欧美一区二区三区的| 欧美一区二区视频在线观看| 夜夜嗨av一区二区三区四季av| 久久夜色精品国产欧美乱极品| 欧美激情视频网站| 亚洲国产精品一区制服丝袜| 麻豆精品一区二区综合av| 亚洲影院在线| 欧美一区二视频| 国产精品女人网站| 国产精品高清免费在线观看| 亚洲午夜在线观看视频在线| 影音先锋久久精品| 国产在线乱码一区二区三区| 国产精品一页| 国产综合香蕉五月婷在线| 国产一区二区日韩精品欧美精品| 国产综合色在线| 亚洲一卡久久| 美女主播一区| 国产精品久久久久久久久久久久| 欧美成人亚洲成人| 亚洲欧美日韩高清| 欧美激情在线有限公司| 亚洲一区二区三区中文字幕| 久久精品九九| 国产精品视频在线观看| 亚洲三级性片| 亚洲国产mv| 欧美va天堂在线| 欧美国产日本韩| 亚洲精品一区二区三区婷婷月| 欧美一区二区三区四区在线观看地址 | 欧美日韩1234| 欧美日韩一区二区三区在线 | 欧美91精品| 亚洲区国产区| 久久综合九色综合欧美狠狠| 国产女主播一区二区三区| 欧美成人嫩草网站| 狠狠色综合网| 欧美专区日韩专区| 国产欧美日韩另类视频免费观看 | 1769国产精品| 久久精品国产一区二区三区| 日韩午夜av| 国产精品大片wwwwww| 99国产精品| 99在线精品观看| 夜夜嗨av一区二区三区四季av| 久久精品成人| 亚洲成色www久久网站| 蜜臀久久99精品久久久久久9 | 国产精品美女久久| 一区二区三区久久| 一区二区三区回区在观看免费视频| 欧美成人精品三级在线观看| 亚洲免费成人av电影| 亚洲日本电影| 国产精品免费久久久久久| 校园激情久久| 亚洲人成小说网站色在线| 欧美另类久久久品| 欧美一区国产二区| 欧美成人自拍| 性欧美video另类hd性玩具| 欧美亚洲一区| 中文在线不卡| 亚洲视频免费在线| 亚洲激情视频| 国产美女精品视频| 亚洲国产裸拍裸体视频在线观看乱了| 欧美日本三区| 欧美+亚洲+精品+三区| 老**午夜毛片一区二区三区| 欧美激情久久久久久| 国产精品久久久久久亚洲调教| 国产区精品视频| 亚洲精品国产品国语在线app| 一个色综合导航| 亚洲电影免费观看高清完整版在线| 亚洲精品在线二区| 一区二区三区毛片| 国产视频自拍一区| 99re6热只有精品免费观看| 黄色小说综合网站| 亚洲欧美卡通另类91av| 一二三四社区欧美黄| 美女福利精品视频| 看片网站欧美日韩| 国内精品久久久久久| 亚洲综合色噜噜狠狠| 午夜精品久久久久久99热| 欧美一区二区三区在线| 在线中文字幕日韩| 亚洲影视在线| 国产精品国产福利国产秒拍| 亚洲精品美女免费| 夜夜爽www精品| 欧美三区在线视频| 欧美电影资源| 久久久免费av| 午夜精品短视频| 国产欧美日韩另类视频免费观看| 亚洲视频 欧洲视频| 亚洲无线视频| 国产欧美日韩亚洲精品| 久久精品一区蜜桃臀影院| 免费欧美在线| 亚洲视频精选| 国产综合视频在线观看| 欧美mv日韩mv国产网站| 欧美黄色日本| 亚洲天堂久久| 国内精品久久久久影院色| 亚洲精品偷拍| 亚洲国产精品久久久久秋霞影院 | 99国产精品久久久久久久成人热| 欧美精品在线免费| 欧美亚洲免费电影| 亚洲区国产区| 国产精品video| 久久婷婷国产综合精品青草| 夜夜嗨一区二区| 免费成人av在线| 亚洲欧美综合| 亚洲精品少妇网址| 伊人久久婷婷| 国产精品日本精品| 欧美日韩国产一区二区| 久久九九全国免费精品观看| 亚洲午夜羞羞片| 日韩视频一区二区三区在线播放| 久久久久久久久久码影片| 亚洲视频免费在线观看| 亚洲精品视频在线观看网站| 黄色在线成人| 黄色在线成人| 国内偷自视频区视频综合| 国产精品久久久久高潮| 欧美私人啪啪vps| 国产精品porn| 国产精品久久久久久久久久久久久 | 免费观看30秒视频久久| 久久国产福利国产秒拍| 久久成人av少妇免费| 午夜日韩福利| 久久国内精品自在自线400部| 欧美亚洲免费| 久久久久免费| 欧美福利视频一区| 欧美激情综合亚洲一二区| 欧美区一区二| 国产欧美日韩综合一区在线播放 | 欧美日韩不卡在线| 欧美日本在线看| 国内精品久久久久久久影视蜜臀 | 欧美大片在线影院| 欧美日韩国产在线播放| 国产精品日韩在线播放| 国产一区二区三区四区在线观看 | 久久久久久夜| 欧美不卡激情三级在线观看| 久久久久久久综合日本| 欧美成人综合网站| 欧美日韩国产成人在线免费| 国产精品系列在线播放| 国产日韩亚洲欧美精品| 亚洲第一成人在线| 亚洲日本电影在线| 欧美一区二区福利在线| 亚洲精品免费网站| 日韩天天综合| 一区二区三区高清在线观看| 久久av最新网址| 欧美精品三级日韩久久| 国产精品大全| 亚洲一区二区三区视频| 欧美1区免费| 久久福利视频导航| 日韩视频在线一区二区| 欧美h视频在线| 另类尿喷潮videofree | 99国产精品久久久久老师 | 亚洲欧美日韩国产成人| 欧美日韩激情网| 在线观看三级视频欧美| 亚洲一区在线视频| 亚洲免费成人| 免费不卡视频| 亚洲成人影音| 免费不卡在线视频|