之前覺得這種入門dp很難來著qwq
由於n很小,加上可以記憶化,所以直接暴力搜尋,列舉父親是否放了,如果沒放那麼當前點只能選擇放,否則兩種都可以,這樣dfs下去統計答案即可。
#includeusing namespace std;
const int maxn=2e3+10;
const int maxm=4e3+10;
int n,cnt;
int a[maxn],dp[maxn][2];
int head[maxn];
int nxt[maxm],to[maxm];
int read()
void add(int x,int y)
int dfs(int u,int fa,int used)
else
} dp[u][used]=ret;
return ret;
}int main()
} dfs(0,-1,0);
dfs(0,-1,1);
cout
}
洛谷 2016 戰略遊戲(樹形DP)
bob喜歡玩電腦遊戲,特別是戰略遊戲。但是他經常無法找到快速玩過遊戲的辦法。現在他有個問題。他要建立乙個古城堡,城堡中的路形成一棵樹。他要在這棵樹的結點上放置最少數目的士兵,使得這些士兵能瞭望到所有的路。注意,某個士兵在乙個結點上時,與該結點相連的所有邊將都可以被瞭望到。請你編一程式,給定一樹,幫b...
洛谷P2016 戰略遊戲 樹形dp
bob喜歡玩電腦遊戲,特別是戰略遊戲。但是他經常無法找到快速玩過遊戲的辦法。現在他有個問題。他要建立乙個古城堡,城堡中的路形成一棵樹。他要在這棵樹的結點上放置最少數目的士兵,使得這些士兵能瞭望到所有的路。注意,某個士兵在乙個結點上時,與該結點相連的所有邊將都可以被瞭望到。請你編一程式,給定一樹,幫b...
P2016 戰略遊戲 樹形DP
bob喜歡玩電腦遊戲,特別是戰略遊戲。但是他經常無法找到快速玩過遊戲的辦法。現在他有個問題。他要建立乙個古城堡,城堡中的路形成一棵樹。他要在這棵樹的結點上放置最少數目的士兵,使得這些士兵能瞭望到所有的路。注意,某個士兵在乙個結點上時,與該結點相連的所有邊將都可以被瞭望到。請你編一程式,給定一樹,幫b...