題解 codevs 1486 愚蠢的礦工

2022-04-28 18:12:14 字數 790 閱讀 1111

我們比較熟悉二叉樹,題目中給出的是一棵多叉樹,我們需要將這可二叉樹改造成二叉樹。

二叉樹可以為這樣的:

父親結點左邊儲存兒子,右邊儲存兄弟。

有兩種改造方法:

if(tree[x].l==0)tree[x].l=y;

else

tree[y].r =tree[x].l;

tree[x].l = y;

之後再考慮轉移,對於這個題來說,我們想要得到關於父節點的資訊,就必須先處理完它的左右子樹。

注意對於每個節點,這個節點可以不取而直接去取它的兄弟。

先處理每個節點的兄弟,在每個節點列舉向左可以放多少人,向右可以放多少人,更新過程遞迴實現。

#include #include 

#include

#include

using

namespace

std;

intn,m;

int a[1006],dp[1006][1006

];struct

ahahtree[

1006

<<2

];int dfs(int k,int

sum)

dp[k][sum]=ans;

return

ans;

}int

main()

}printf("%d

",dfs(tree[0

].l,m));

}

codevs1486愚蠢的礦工(樹形dp)

時間限制 1 s 空間限制 128000 kb stupid 家族得知在hyc家的後花園裡的 花壇處,向北走3步,向西走3步,再向北走3步,向東走3步,再向北走6步,向東走3步,向南走12步,再向西走2步 就能找到寶藏的入口,而且寶藏都是藏在山里的,必須挖出來,於是stupid家族派狗狗帶領礦工隊去...

Codevs 1503 愚蠢的寵物

時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解檢視執行結果 大家都知道,sheep有兩隻可愛的寵物 乙隻叫神牛,乙隻叫神菜 有一天,sheep帶著兩隻寵物到狗狗家時,這兩隻可愛的寵物竟然迷路了 狗狗的家因為常常遭到貓貓的攻擊,所以不得不把家裡前院的路修得非常複雜。狗狗家前院...

T1503 愚蠢的寵物 codevs

時間限制 1 s 空間限制 128000 kb 題目等級 gold 題目描述 description 大家都知道,sheep有兩隻可愛的寵物 乙隻叫神牛,乙隻叫神菜 有一天,sheep帶著兩隻寵物到狗狗家時,這兩隻可愛的寵物竟然迷路了 狗狗的家因為常常遭到貓貓的攻擊,所以不得不把家裡前院的路修得非常...