細節很精妙huyichen世子事件後,xuzhenyi成了皇上特聘的御前一品侍衛。
皇宮以午門為起點,直到後宮嬪妃們的寢宮,呈一棵樹的形狀;某些宮殿間可以互相望見。大內保衛森嚴,三步一崗,五步一哨,每個宮殿都要有人全天候看守,在不同的宮殿安排看守所需的費用不同。
可是xuzhenyi手上的經費不足,無論如何也沒法在每個宮殿都安置留守侍衛。
幫助xuzhenyi布置侍衛,在看守全部宮殿的前提下,使得花費的經費最少。
輸入格式
輸入檔案中資料表示一棵樹,描述如下:
第1行 n,表示樹中結點的數目。
第2行至第n+1n+1行,每行描述每個宮殿結點資訊,依次為:該宮殿結點標號i(0
對於乙個n(0 < n \le 15000
輸出格式
輸出檔案僅包含乙個數,為所求的最少的經費。
有些細節處理真的是非常精妙。
分析詳見初涉樹形dp【權最小點覆蓋】vijos1144皇宮看守
1 #include2const
int maxn = 2003;3
4int f[maxn][3
],a[maxn],n,rt;
5int head[maxn],nxt[maxn<<1],edges[maxn<<1
],edgetot;
6bool
vis[maxn];78
intread()
920 inline int min(int a, int b)
21 inline int min(int a, int b, int c)
22void addedge(int u, int
v)23
27void dfs(int
now)
2839 delta = std::max(delta, 0
);40 f[now][1] +=delta;41}
42int
main()
4352 rt = 1;53
while (vis[rt]) rt++;
54dfs(rt);
55 printf("
%d\n
",min(f[rt][1], f[rt][2
]));
56return0;
57 }
end
DP vijos1037 搭建雙塔
問題描述 2001年9月11日,一場突發的災難將紐約世界 中心大廈夷為平地,mr.f曾親眼目睹了這次災難。為了紀念 9?11 事件,mr.f決定自己用水晶來搭建一座雙塔。mr.f有n塊水晶,每塊水晶有乙個高度,他想用這n塊水晶搭建兩座有同樣高度的塔,使他們成為一座雙塔,mr.f可以從這n塊水晶中任取...
樹形DP 樹形DP四例
是時候練一下dp了!我的題單 portkey f u,if fu,i 表示以u uu為根節點的子樹中保留i ii條樹枝的最大蘋果數 f u,i max f max f fu,i max這些題是菜,但也不能輕視啊!include using namespace std define in read i...
樹形操作1 樹形拖拽選擇
樹形運算元據,做個整理總結。本篇是關於樹節點拖拽選擇,重新生成一棵新樹,並支援刪除節點。demo 是基於 jquery 及 easy ui 庫實現的。截圖 利用 css3 實現。主要運用了 before,after選擇器 畫 了兩個圓,然後利用border進行圓的調整,最後利用animation及t...