樹上覆蓋集計數 樹形動態規劃

2021-08-25 06:10:55 字數 722 閱讀 2052

description

給定一棵

n n

個節點的樹,求它的最小覆蓋集個數。

solution

我們考慮同時維護節點的最小覆蓋集和最小覆蓋集個數。我們發現乙個點被覆蓋只有

3' role="presentation" style="position: relative;">3

3種情況:父親被選入集合,自己被選入集合和至少乙個兒子被選入集合。我們寫出 dp

d

p狀態:⎧⎩

⎨⎪⎪f

[u][

i][0

]表示u

的父親被

選入集合

,自己和

任意乙個

兒子不被

選入集合

f[u]

[i][

1]表示

u有至少

乙個兒子

被選入集

合f[u

][i]

[2]表

示u自己

被選入集

合 void update(int &a, int b)

void dfs(int u, int p)

}int main()

dfs(1, 0);

if (f[1][1] < f[1][2]) else

if (f[1][1] > f[1][2]) else

return

0;}

樹形動態規劃

description 有一棵蘋果樹,如果樹枝有分叉,一定是分2叉 就是說沒有只有1個兒子的結點 這棵樹共有n個結點 葉子點或者樹枝分叉點 編號為1 n,樹根編號一定是1。我們用一根樹枝兩端連線的結點的編號來描述一根樹枝的位置。下面是一顆有4個樹枝的樹 2 5 3 4 1現在這顆樹枝條太多了,需要剪...

樹形動態規劃

分類 演算法 2012 07 01 21 53 494人閱讀收藏 舉報tree output input struct演算法 description 有一棵蘋果樹,如果樹枝有分叉,一定是分2叉 就是說沒有只有1個兒子的結點 這棵樹共有n個結點 葉子點或者樹枝分叉點 編號為1 n,樹根編號一定是1。我...

樹形動態規劃

問題可以分解成若干相互聯絡的階段,在每乙個階段都要做出決策,全部過程的決策是乙個決策序列。要使整個活動的總體效果達到最優的問題,稱為多階段決策問題。動態規劃就是解決多階段決策最優化問題的一種思想方法。將所給問題的過程,按時間或空間特徵分解成若干相互聯絡的階段,以便按次序去求每階段的解 各階段開始時的...