UVa 1292 - Strategic game
2013-05-04 08:59
113 查看
有两种做法:一种是经典二分图最小顶点覆盖,一种是树形DP,我用的后者。
第一次学习树形DP……
第一次学习树形DP……
#include <cstdio> #include <cstring> #include <cstdlib> #include <vector> #include <algorithm> using namespace std; const int MAXN = 1600; int N, root; int dp[MAXN][2]; vector<int> tree[MAXN]; void init() { root = -1; for ( int i = 0; i < N; ++i ) { int u, cnt; tree[i].clear(); scanf("%d:(%d)", &u, &cnt ); if ( root == -1 ) root = u; for ( int j = 0; j < cnt; ++j ) { int v; scanf( "%d", &v ); tree[u].push_back(v); } } return; } int DFS( int fa ) { dp[fa][0] = 0; dp[fa][1] = 1; int len = tree[fa].size(); for ( int i = 0; i < len; ++i ) { int v = tree[fa][i]; DFS( v ); dp[fa][0] += dp[v][1]; dp[fa][1] += min( dp[v][0], dp[v][1] ); } return min( dp[fa][0], dp[fa][1] ); } int main() { while ( scanf( "%d", &N ) == 1 ) { init(); printf( "%d\n", DFS(root) ); } return 0; }
相关文章推荐
- uva 1292 - Strategic game(树形dp)
- UVA 1292-Strategic game
- UVa:1292 Strategic game(树形DP)
- UVA 1292-Strategic game(树形DP)
- UVa 1292 - Strategic game (树形dp)
- UVA 1292 Strategic game(树形dp)
- Uva 1292 - Strategic game 树形dp 最小点覆盖
- UVA1292-----Strategic game-----树形DP解决树上的最小点覆盖问题
- Uva 1292 - Strategic game 树形dp 最小点覆盖
- UVa 1292 - Strategic game (树形dp)
- UVA 1292 十二 Strategic game
- UVA1292-----Strategic game-----树形DP解决树上的最小点覆盖问题
- 树形DP UVA 1292 Strategic game
- UVA 1292 - Strategic game(最小顶点覆盖问题,覆盖所有边,自己版本待解)
- UVA 1292 - Strategic game(树形dp)
- UVALive 2038 Strategic game
- UVALive 2038 Strategic game (树形DP,4级)
- UVALive 2038 Strategic game (树形DP,4级)
- uva1292 树形dp
- 【树形dp】UVALive 2038 Strategic game