日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hdu4714 Tree2cycle 把树剪成链

發布時間:2023/12/9 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu4714 Tree2cycle 把树剪成链 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目是問把一棵樹通過剪邊、加邊形成一個環的最小代價。

分成兩步,先把樹剪成一些鏈,再把鏈連接成一個環。

設一棵有n個節點的樹,剪掉X條邊后,形成L條鏈。

那么代價為X+L。

n-1-X=edgeNum(L條鏈) ① //原本有n-1條邊,剪掉X條,還剩edgeNum(L條鏈)條

edgeNum(L條鏈)+L=n ② //L條鏈的這些邊+L條邊形成一個有n條邊的環

由①、②得到,L=X+1

則代價為 X+L=2*L-1=2*X+1。

問題轉化成了,把一棵樹剪成一些鏈,最少能剪成幾條鏈?或者,最少需要剪掉多少條邊?

我覺得到了這一步問題就好解決了,我是樹形dp搞的,求的是最少能剪成幾條鏈。

dp[u][0]表示u節點是所在鏈的端點時,以u節點為根節點的子樹形成的最少的鏈數。

dp[u][1]表示u節點是所在鏈的中間的點時,以u節點為根節點的子樹形成的最少的鏈數。

然后就可以轉移了。

1 #include<cstdio> 2 #include<cstring> 3 #include<vector> 4 #pragma comment(linker, "/STACK:102400000,102400000") 5 using namespace std; 6 const int N = 1000005; 7 const int inf = N; 8 9 vector<int> G[N]; 10 int dp[N][2]; 11 12 inline int min(int a,int b) {return a<b?a:b;} 13 14 void dfs(int u,int fa) 15 { 16 int sz = G[u].size(); 17 int v,cld=0,sum=0,min1=inf,min2=inf,temp; 18 for(int i=0;i<sz;i++) 19 { 20 v = G[u][i]; 21 if( v!=fa ) 22 { 23 cld++; 24 dfs(v,u); 25 temp = min(dp[v][0],dp[v][1]); 26 sum += temp; 27 temp = dp[v][0] - temp; 28 if( temp<min1 ) {min2=min1;min1=temp;} 29 else if( temp<min2 ) min2=temp; 30 } 31 } 32 if( !cld ) dp[u][0]=1,dp[u][1]=inf; 33 else if( 1==cld ) dp[u][0]=sum+min1,dp[u][1]=inf; 34 else 35 { 36 dp[u][0] = sum + min1; 37 dp[u][1] = sum + min1 + min2 - 1; 38 } 39 } 40 41 int main() 42 { 43 int T; 44 int n,u,v; 45 46 //freopen("4714.in","r",stdin); 47 //freopen("myout.txt","w",stdout); 48 scanf("%d",&T); 49 while( T-- ) 50 { 51 scanf("%d",&n); 52 for(int i=1;i<=n;i++) G[i].clear(); 53 for(int i=0;i<n-1;i++) 54 { 55 scanf("%d%d",&u,&v); 56 G[u].push_back(v); 57 G[v].push_back(u); 58 } 59 dfs(1,0); 60 printf("%d\n",2*min(dp[1][0],dp[1][1])-1); 61 } 62 return 0; 63 } View Code

?

?

轉載于:https://www.cnblogs.com/kiwi-bird/p/3310970.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的hdu4714 Tree2cycle 把树剪成链的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 看黄色的网址 | 天天摸天天看 | 午夜成人免费电影 | 人人模人人干 | 97香蕉超级碰碰久久免费软件 | 男人爱看的网站 | 日韩一区免费视频 | 最好看十大无码av | 黑鬼大战白妞高潮喷白浆 | www.天天干.com| 欧美日韩综合一区二区三区 | 国产成人av一区二区三区不卡 | 国产一级免费大片 | 免费中文字幕日韩 | 中文字幕久久一区 | 天堂网av中文字幕 | 免费成人在线观看 | www.777含羞草 | 欧美一级片在线看 | 波多野结衣1区2区3区 | 日本久色 | 十八岁世界在线观看高清免费韩剧 | 国产亚洲欧美精品久久久久久 | 男生女生羞羞网站 | 久一区二区三区 | 新婚之夜玷污岳丰满少妇在线观看 | 精品久久一 | 熟女一区二区三区四区 | 一本久久道 | 天天干天天爽天天操 | 四虎国产成人精品免费一女五男 | 8x8ⅹ成人永久免费视频 | 91在线无精精品白丝 | 午夜视频网站在线观看 | 尹人综合 | 少妇激情在线 | 免费看a| 久久春色 | 日韩午夜精品 | 女生喷液视频 | www日本视频| 免费网站av| 免费看裸体视频网站 | 精精国产 | 亚洲国产免费视频 | 91视频看看 | 性感美女黄色片 | 男男av网站| 色婷婷av一区二区三区大白胸 | 国产99久久久国产精品成人免费 | 亚洲国语 | 欧美一区二区在线视频观看 | 日本少妇激情舌吻 | 久草手机在线 | www.久久艹 | 日韩va在线观看 | 欧美人与动物xxxx | 久久激情久久 | 医生强烈淫药h调教小说视频 | 欧美久久一区二区三区 | 久久免费电影 | 欧美日韩一级二级 | 婷婷九月 | 欧美另类第一页 | 亚洲人屁股眼子交1 | 成人免费看片视频 | 黄色小说视频 | 夜夜爱av| aaa一级黄色片| 夜夜干夜夜 | 黄色片免费视频 | 三级在线国产 | 久久波多野 | 日本黄色免费网站 | 日本黄色大片免费看 | 欧美群妇大交乱 | 免费一区视频 | 成人精品一区二区三区电影 | 久久午夜鲁丝片午夜精品 | 亚洲欧美在线观看 | 人人妻人人爽欧美成人一区 | 日韩精品无码一本二本三本色 | 亚洲色图视频在线观看 | 丰满岳妇伦在线播放 | 亚洲网址在线观看 | 国产精品永久在线观看 | 在线成人免费视频 | 误杀1电影免费观看高清完整版 | 少女视频的播放方法 | 国产精品久久久91 | www五月天com | 女人的av | 黄色xxxxxx | 色图网址 | 四虎av影院 | 欧美a级在线免费观看 | 欧美一区二区三区色 | 国产精品麻豆一区二区三区 | 最好看的mv中文字幕国语电影 |