HLOJ 樹形DP前置 DFS(樹形DP入門)

2021-10-08 15:34:19 字數 942 閱讀 3634

給定一棵 n

nn 個點的樹,根為 t

tt求每個點的父親是哪個點,t

tt 的父親輸出 0

00第一行兩個整數 n,t

n,tn,

t接下來 n−1

n−1n−

1 行,每行兩個整數 x,y

x,yx,

y,表示 x,y

x,yx,

y 之間有一條邊

n

nn 行,第 i

ii 行乙個整數,表示 i

ii 號點的父親

input

4 31 3

3 21 4

output33

011 ≤n

≤105

1≤n≤105

1≤n≤10

5時間限制:1s

空間限制:256mb

#include

using

namespace std;

int n,t,tot=0;

int fa[

100010

],linkk[

100010];

struct node

e[200010];

void

insert

(int x,

int y)

//鄰接表插入

void

dfs(

int x,

int father)}}

intmain()

dfs(t,0)

;//從根節點開始dfs

for(

int i=

1;i<=n;i++

)printf

("%d\n"

,fa[i]);

//輸出

return0;

}

樹形DP 樹形DP四例

是時候練一下dp了!我的題單 portkey f u,if fu,i 表示以u uu為根節點的子樹中保留i ii條樹枝的最大蘋果數 f u,i max f max f fu,i max這些題是菜,但也不能輕視啊!include using namespace std define in read i...

樹形dp小結

這些天做了一些樹形dp的題目,感覺有了些領悟,尤其是理解到樹形揹包就是分組揹包之後。選出幾道不錯的總結一下 hdu 1520 hdu 4003 poj 1155 poj 2486 hdu 4313 hdu 4340 hdu 1520 入門水題 每個節點有權值,子節點和父節點不能同時選,問最後能選的最...

樹形dp總結

from 列出一些經典問題吧 1 給出一棵樹 每個節點有權值 要求父節點和子節點不能同時取 求能夠取得的最大值 hdu1520 2 給出一棵樹,求離每個節點最遠的點的距離 hdu2196 3 1 在乙個地圖上,有n座城堡,每座城堡都有一定的寶物,在每次遊戲中允許攻克m個城堡並獲得裡面的寶物。但由於地...