poj 1463(树形dp)
来源:互联网 发布:兔子白网络 编辑:程序博客网 时间:2024/09/21 06:42
题目链接:http://poj.org/problem?id=1463
思路:简单树形dp,如果不选父亲节点,则他的所有的儿子节点都必须选,如果选择了父亲节点,则儿子节点可选,可不选,取较小者。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<vector> 6 using namespace std; 7 #define MAXN 2222 8 #define FILL(a,b) memset(a,b,sizeof(a)) 9 10 int n,dp[MAXN][2];11 vector<int>g[MAXN];12 13 int dfs(int u,int father)14 {15 dp[u][0]=0,dp[u][1]=1;16 for(int i=0;i<g[u].size();i++){17 int v=g[u][i];18 if(v==father)continue;19 dfs(v,u);20 dp[u][0]+=dp[v][1];21 dp[u][1]+=min(dp[v][0],dp[v][1]);22 }23 return min(dp[u][0],dp[u][1]);24 }25 26 27 int main()28 {29 int u,v,k;30 while(~scanf("%d",&n)){31 for(int i=0;i<=n;i++)g[i].clear();32 for(int i=1;i<=n;i++){33 scanf("%d:(%d)",&u,&k);34 while(k--){35 scanf("%d",&v);36 g[u].push_back(v);37 g[v].push_back(u);38 }39 }40 printf("%d\n",dfs(0,-1));41 }42 return 0;43 }
0 0
- 【树形dp】POJ 1463
- poj 1463(树形dp)
- 树形DP专辑--POJ 1463 Strategic game
- poj 1463 树形dp 最小点覆盖
- poj 1463 Strategic game(树形DP)
- POJ 1463 Strategic game( 树形DP )
- POJ 1463-Strategic game(树形DP)
- POJ - 1463Strategic game入门树形DP
- poj 1463 Strategic game 树形dp
- poj 1463Strategic game【树形dp】
- poj 1463 Strategic game(树形dp)
- poj 1463 Strategic game 树形dp
- poj 1463 Strategic game (树形DP)
- poj 1463 Strategic game 树形dp
- poj 1770 树形dp
- poj 3342 树形DP
- poj 2486 树形dp
- poj 2486 树形DP
- poj 2486( 树形dp)
- poj 1935(树形dp)
- loj 1168(Tarjan应用)
- loj 1004(dp)
- poj 2378(树形dp)
- poj 1463(树形dp)
- loj 1011(状态压缩+记忆化搜索)
- loj 1013(LCS+记忆化搜索)
- loj 1154(最大流+枚举汇点)
- loj 1017(dp)
- loj 1018(状压dp+记忆化搜索)
- loj 1021(状压dp+记忆化搜索)
- loj 1025(记忆化搜索)
- loj 1155(最大流)