/**
最小支配集,就是圖中用最少的點覆蓋其它所有點
如果用選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個點...