樹的最小支配集

2021-07-05 02:21:59 字數 698 閱讀 7340

/**

最小支配集,就是圖中用最少的點覆蓋其它所有點

如果用選a點覆蓋,則與a點相連的點都被覆蓋,大致

就是這樣

有乙個圖g,現在希望在一些點建立控制站,每個控制站能控制與它相臨的點(直接相連),

現在希望有選擇的在一些點建立控制站,使得以最小得控制站數,控制所有的點

圖的最小支配集是np 問題,我只會樹的最小支配集模板,就是

圖g 是樹形結構

判斷樹的最小支配集,條件如下

1、選一結點為根後序遍歷

2、遍歷過程中,如果該結點沒被覆蓋,該結點的父親結點沒被覆蓋,且

該結點的子結點中沒有被覆蓋的,則該結點的父親結點即為一覆蓋點

就上面兩個條件即可實現,證明不會,自己畫畫就能懂

現在用vector 存邊來寫下

#include vectoradj[m];

bool vis[m], over[m];

int ans;

//初始化: vis, over, ans = 0

//呼叫dfs(1, 1), 選 1 為根節點

void dfs(int u, int fa)

}if (!over[fa] && !flag && !over[u])

}ans即為最小支配集得個數,over[x] 表示x點被覆蓋

poj 3659

*/收藏於 2012-01-20

問題 L 開會 樹的最小支配集

時間限制 1 sec 記憶體限制 128 mb 提交 111 解決 20 提交 狀態 討論版 命題人 admin 題目描述 開會,是對所有人時間的浪費,是對集體的 山區學校的一些學生之間的關係似乎好得有點過頭,以至於傳出了一些 在風紀委員們看來 不好的緋聞。具體地,有n個學生,n 1條緋聞,每條緋聞...

樹型DP求樹的最小支配集

樹型dp求樹的最小支配集 定義 支配集 形式上,支配集可描述如下 給定無向圖g v e 其中v 是大小為n 的點集,e 是邊集,那麼v 的乙個子集s稱為支配集當且僅當對於v s 中任何乙個點v 都有s 中的某個定點u 使得 u v e。最小支配集 對於圖g v,e 來說,最小支配集指的是從 v 中取...

poj 3659 樹形dp(樹上的最小支配集)

題意 求樹的最小支配集。思路 動態規劃。一開始每個點只取了兩個變數,表示在以其為根的子樹中選擇和不選擇該點的最少點數。由一組資料 6個點的路徑 發現了問題,考慮第3個點的時候,如果不選擇此點,那麼第4個點必須要選取,實際上這是不必的。該組資料的最優解是選擇第2和第5個點。dp1 x 表示選擇第x個點...