洛谷2016 戰略遊戲(樹形DP)

2021-09-11 17:40:35 字數 559 閱讀 6227

之前覺得這種入門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...