1077. 皇宮看守
對於一條邊,可以由父節點覆蓋,或者子節點覆蓋,f[u][0]表示該節點不放士兵,f[u][1]表示該節點放士兵.
當該節點不放時,只有由所有子節點放的情況轉移;當該節點放時,可以由子節點放或不放的情況轉移而來
#includeusing namespace std;
const int n=1510;
int h[n],idx,f[n][2];//0不放,1放
struct ege[n*2];
void add(int u,int v);
h[u]=idx++;
}void dfs(int u,int pre)
}int main()
}dfs(0,-1);
if(n==1) cout<<1
cout<}
return 0;
}
HDU 1350 最小邊覆蓋
將某個人的行程視為二分圖中的乙個節點,用結構體記錄每個節點的資訊 起點時間,終點時間,位置 然後對於每個節點,看它結束後能否提前趕到其他節點,能的話就加邊。然後就用二分圖匹配,算出最小邊覆蓋就可以了。為什麼是最小邊覆蓋,因為乙個計程車走一條邊,囊括所有節點的最少的邊數就是我們要求的最少計程車數。記得...
HDU 6311 尤拉路 最小邊覆蓋
原題 題意 對於乙個圖 不一定聯通 最少需要多少筆 路徑 能覆蓋所有的邊,還有輸出路徑。尤拉路,對於乙個聯通的圖,需要max 1,度數為奇數的點 2 筆就能畫完。這題,對於每個聯通塊,把度數為奇數的點,按 對 加邊,只留兩個點做起點和終點,應該是這樣理解 加的邊就是 虛 邊。補完圖後,跑乙個dfs,...
樹上差分 點覆蓋 邊覆蓋
樹上差分實際上類似於樹鏈剖分,將一條鏈分為輕鏈和重鏈,再分別對兩個直鏈去做差分標記,最後再去對於每個點dfs他的子節點求樹上字首和.類似的題目自己做過的不多,這裡推薦兩道比較簡單的題目,都是邊覆蓋問題.eoj monthly 2018.8 d.delivery service p2680 運輸計畫 ...