码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 1561 The more, The Better(树形dp)

时间:2016-03-08 16:15:25      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

http://acm.hdu.edu.cn/showproblem.php?pid=1561

 

树形dp:

 

 1 #include<iostream>
 2 #include<cstring>
 3 #include<vector>
 4 using namespace std;
 5 
 6 const int mx=222;
 7 int dp[mx][mx];
 8 vector<int>g[mx];
 9 
10 void dfs(int x,int m)
11 {
12     if (m==0) return ;
13     for (int i=0;i<g[x].size();i++)
14     {
15         int cut=g[x][i];
16         dfs(cut,m-1);
17         for (int j=m;j>=1;j--)
18         {
19             int v=j;
20             for(int k=1;k<v;k++)
21             {
22                 dp[x][v]=max(dp[x][v],dp[x][v-k]+dp[cut][k]);
23             }
24         }
25     }
26 }
27 
28 int main()
29 {
30     int n,m;
31     while(cin>>n>>m)
32     {
33         memset(dp,0,sizeof(dp));
34         if (!n&&!m) return 0;
35         int a,i;
36         for (i=0;i<=n;i++) g[i].clear();
37         for (i=1;i<=n;i++)
38         {
39             cin>>a>>dp[i][1];
40             g[a].push_back(i);
41         }
42         dfs(0,m+1);
43         cout<<dp[0][m+1]<<endl;
44     }
45 }

 

hdu 1561 The more, The Better(树形dp)

标签:

原文地址:http://www.cnblogs.com/pblr/p/5254246.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!