傳送門
水的一批的樹型dp,看題沒看清以為是用最少關鍵點覆蓋所有點,結果是點覆蓋所有邊
那就是個很簡單的問題了(雖然點覆蓋點也不難,但我還是寫了好久,wa了)
設 fi,0 是 i 點不設防,fi,1 是 i 點設防情況下以 i 為根的子樹的最小貢獻。
因為如果乙個點不設防,那麼它的所有兒子必須設防來覆蓋父親到其的那條邊,
如果乙個點設防,那它兒子設不設防就無所謂了,取最小貢獻就 ok。
轉移方程看**吧。
#include #include#include
#include
#define maxn 1510
using
namespace
std;
typedef
long
long
ll;const
int inf=0x3f3f3f3f
;int n,f[maxn][2];
int head[maxn],to[maxn*2],nxt[maxn*2],tot=1
;int
read()
while(c>='
0'&&c<='
9')
return x*f;
}void add(int u,int v)
void dfs(int u,int
rt)}
intmain()
}dfs(
1,0);
printf(
"%d\n
",min(f[1][0],f[1][1
]));
return0;
}
洛谷 P2016 戰略遊戲
題目描述 bob喜歡玩電腦遊戲,特別是戰略遊戲。但是他經常無法找到快速玩過遊戲的辦法。現在他有個問題。他要建立乙個古城堡,城堡中的路形成一棵樹。他要在這棵樹的結點上放置最少數目的士兵,使得這些士兵能瞭望到所有的路。注意,某個士兵在乙個結點上時,與該結點相連的所有邊將都可以被瞭望到。請你編一程式,給定...
洛谷p2016戰略遊戲
題目大意 bob喜歡玩電腦遊戲,特別是戰略遊戲。但是他經常無法找到快速玩過遊戲的辦法。現在他有個問題。他要建立乙個古城堡,城堡中的路形成一棵樹。他要在這棵樹的結點上放置最少數目的士兵,使得這些士兵能瞭望到所有的路。注意,某個士兵在乙個結點上時,與該結點相連的所有邊將都可以被瞭望到。請你編一程式,給定...
洛谷P2016 戰略遊戲
bob喜歡玩電腦遊戲,特別是戰略遊戲。但是他經常無法找到快速玩過遊戲的辦法。現在他有個問題。他要建立乙個古城堡,城堡中的路形成一棵樹。他要在這棵樹的結點上放置最少數目的士兵,使得這些士兵能瞭望到所有的路。注意,某個士兵在乙個結點上時,與該結點相連的所有邊將都可以被瞭望到。請你編一程式,給定一樹,幫b...