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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

(牛客网)树型dp

發(fā)布時(shí)間:2023/12/3 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (牛客网)树型dp 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

樹(shù)型dp

視頻鏈接
(如果想購(gòu)買(mǎi)網(wǎng)課,可以用我的邀請(qǐng)碼)
用我的鏈接購(gòu)買(mǎi),我再反你10,一共花54多值
購(gòu)買(mǎi)鏈接
不放心可以先加我好友2830872914

總試題鏈接

文章目錄

  • 樹(shù)型dp
  • 例題
      • NC15033 小G有一個(gè)大樹(shù)
      • NC511788 沒(méi)有上司的舞會(huì)(最大獨(dú)立集)
      • poj1463 NC106060 Strategic game(樹(shù)的最小點(diǎn)覆蓋)
      • NC24953 CellPhoneNetwork(樹(shù)的最小支配集)
      • 以上小總結(jié):
      • NC50505 二叉蘋(píng)果樹(shù)
      • 延伸-->多叉樹(shù)情況
      • NC202475 樹(shù)上子鏈(樹(shù)的直徑)
      • NC22598 Rinne Loves Edges
      • NC210473 吉吉王國(guó)
  • 習(xí)題
    • NC13249 黑白樹(shù)
    • NC15748 旅游
    • NC19782 Tree
    • NC200547 劃分樹(shù)
    • NC201400 樹(shù)學(xué)
    • NC20811 藍(lán)魔法師
    • NC51179 選課
    • NC51180 Accumulation Degree

例題

NC15033 小G有一個(gè)大樹(shù)

題解鏈接
樹(shù)的重心定義為:樹(shù)中的一個(gè)點(diǎn),刪掉該點(diǎn),使剩下的樹(shù)所構(gòu)成的森林中最大的子樹(shù)節(jié)點(diǎn)數(shù)最少。
dp[i]=max(n-tot[i],max(tot[k]))

NC511788 沒(méi)有上司的舞會(huì)(最大獨(dú)立集)

題解鏈接
dp[i][0]不選i點(diǎn)時(shí),i點(diǎn)及其子樹(shù)能選出的最大快樂(lè)指數(shù)
dp[i][1]表示選擇i點(diǎn)時(shí),i點(diǎn)及其子樹(shù)的最大快樂(lè)值
狀態(tài)轉(zhuǎn)移:
dp[i][0]=∑(max dp[j][0],dp[j][1])//當(dāng)i點(diǎn)不選時(shí),兒子選與不選
dp[i][1]=∑dp[j][0]+Hi//選了父親,不能選兒子
(j是i的兒子)
邊界:dp[i][0]=0 dp[i][1]=hi
結(jié)果:max(dp[root][0],dp[root][1])
本質(zhì):兒子與父親不能同時(shí)選

poj1463 NC106060 Strategic game(樹(shù)的最小點(diǎn)覆蓋)

題解鏈接
試題:一個(gè)樹(shù),在一個(gè)節(jié)點(diǎn)放兵,周?chē)倪吘捅皇刈o(hù),守護(hù)所有的邊,問(wèn)最少放多少兵
確定狀態(tài):
dp[x][1]以x為根的子樹(shù)全被看住且在x上放置士兵的最少所需的士兵數(shù)量
dp[x][0]以x為根的子樹(shù)全被看住且在x上沒(méi)有 放置士兵的最少所需的士兵數(shù)量.
確定狀態(tài)方程:
dp[x][1]=1+∑min(dp[i][0],dp[i][1])//x上放了士兵,x的兒子們可放可不放
dp[x][0]=∑dp[i][1]//如果x不放士兵,x的兒子必須放
結(jié)果min(dp[root][0],dp[root][1])
i是x的兒子
相當(dāng)于我們?cè)诳紤]x點(diǎn)時(shí),x的子節(jié)點(diǎn)都是被考慮完的,x能否被覆蓋完全取決于自身或x的兒子

NC24953 CellPhoneNetwork(樹(shù)的最小支配集)

題解鏈接
最少用多少個(gè)點(diǎn)可以覆蓋掉所有其他點(diǎn)
確定狀態(tài):
dp[x][0]:選點(diǎn)i,并且以點(diǎn)i為根的子樹(shù)都被覆蓋
dp[x][1]:不選i,i被其兒子覆蓋
dp[x][2]:不選點(diǎn)i,i被其父親覆蓋(此時(shí)兒子可選可不選)
轉(zhuǎn)移方程:
dp[i][0]=1+∑min(dp[u][0],dp[u][1],dp[u][2])(u是i的兒子)
被兒子被自己被父親覆蓋

dp[i][2]=∑(dp[u][1],dp[u][0])
i被父親覆蓋,u是i的兒子,u 可選可不選,但是u肯定不會(huì)被i所覆蓋

對(duì)于dp[i][1]情況,i的兒子們中必須有一個(gè)取dp[u][0]
if(i沒(méi)有子節(jié)點(diǎn))dp[i][1]=INF
else dp[i][1]=∑min(dp[u][0],dp[u][1])+inc
對(duì)于inc
if(∑min(dp[u][0],dp[u][1])中包含某個(gè)dp[u][0])inc=0
else inc=min(dp[u][0]-dp[u][1])
選與不選
圖一是自然被選
圖二是強(qiáng)制選擇


以上小總結(jié):

最小點(diǎn)覆蓋
每個(gè)點(diǎn)附近周?chē)倪?br /> 最大獨(dú)立集
父親與兒子不能同時(shí)選,選最多的點(diǎn)
最小支配集
每個(gè)點(diǎn)附近周?chē)狞c(diǎn)

把子樹(shù)當(dāng)做一個(gè)整體

NC50505 二叉蘋(píng)果樹(shù)

詳細(xì)題解
一棵二叉蘋(píng)果樹(shù),且一定分二叉, 給定需要保留的樹(shù)枝數(shù)量,求最多能留住多少蘋(píng)果
確定狀態(tài):
dp[u][v]以u(píng)為根的子樹(shù)保留j個(gè)分支可以得到的最大蘋(píng)果數(shù)量

左右兒子都在
左子樹(shù)砍了

三種情況:
只保留左
dp[u][j]=dp[l][j-1]+a[j][l]
只保留右
dp[u][j]=dp[r][j-1]+a[j][r]
左子樹(shù)保留x個(gè),右子樹(shù)保留j-2-x個(gè)
dp[u][j]=dp[l][x]+dp[r][j-2-x]+a[j][l]+a[j][r]
a是指每條邊的蘋(píng)果樹(shù)數(shù)量

延伸–>多叉樹(shù)情況

不斷將一個(gè)子樹(shù)合并到左子樹(shù)里,始終處理的只有兩個(gè)子樹(shù)
強(qiáng)行當(dāng)做二叉樹(shù)處理

樹(shù)上背包
dp[u][j]=max(dp[u][k]+dp[v][j-k-1]+w)
v是u的子節(jié)點(diǎn),k∈[0,j]
w=a[u][v]//u與v之間的邊權(quán)
(發(fā)現(xiàn)該公式類(lèi)似于背包)

NC202475 樹(shù)上子鏈(樹(shù)的直徑)

詳細(xì)題解
每個(gè)點(diǎn)有點(diǎn)權(quán)
樹(shù)的子鏈大小的這個(gè)子鏈上所有結(jié)點(diǎn)的權(quán)值和
在樹(shù)T中找到最大的子鏈

樹(shù)的直徑:兩邊dfs
點(diǎn)權(quán)與邊權(quán)轉(zhuǎn)換

NC22598 Rinne Loves Edges

詳細(xì)題解
題意:
n個(gè)節(jié)點(diǎn)m條邊的無(wú)向連通圖(為樹(shù),m=n-1)
選取一個(gè)點(diǎn)S,然后刪除一些邊,使得原圖中所有除S之外度為1的點(diǎn)都不能到達(dá)S(讓葉子節(jié)點(diǎn)和根節(jié)點(diǎn)不通)
刪邊的費(fèi)用為邊的權(quán)值

可以跑網(wǎng)絡(luò)流,全局最小割
樹(shù)的話(huà),沒(méi)必要

考慮x點(diǎn)的子樹(shù)上每個(gè)葉子都與s不連通
兩種情況:
把x和他的兒子斷開(kāi)
在x的子樹(shù)上取把所有葉子節(jié)點(diǎn)斷開(kāi)
dp[x]表示x的子樹(shù)上的所有葉子和根斷開(kāi)的最小代價(jià)
dp[x]=∑(min(dp[y],dis[x][y]))
y是x的兒子

NC210473 吉吉王國(guó)

詳細(xì)題解
題目:
一棵無(wú)向樹(shù),切掉一些邊,切斷的邊的權(quán)值不能超過(guò)m,使得葉子節(jié)點(diǎn)與根節(jié)點(diǎn)(1號(hào))分離,要使得切斷的邊中最大的邊權(quán)要盡可能小

最大值最小:二分
去二分最長(zhǎng)能切的邊
二分+判定
如果可以切就切斷,如果x到y(tǒng)的邊切不斷(x是y的父親節(jié)點(diǎn)),那就切y子樹(shù)里面的節(jié)點(diǎn),一直向下

習(xí)題

題目鏈接

NC13249 黑白樹(shù)

NC15748 旅游

NC19782 Tree

NC200547 劃分樹(shù)

NC201400 樹(shù)學(xué)

NC20811 藍(lán)魔法師

NC51179 選課

NC51180 Accumulation Degree

總結(jié)

以上是生活随笔為你收集整理的(牛客网)树型dp的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。