hdu 1561 The more, The Better(树形dp入门)
2016-03-08 15:31
579 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1561
树形dp:
树形dp:
#include<iostream> #include<cstring> #include<vector> using namespace std; const int mx=222; int dp[mx][mx]; vector<int>g[mx]; void dfs(int x,int m) { if (m==0) return ; for (int i=0;i<g[x].size();i++) { int cut=g[x][i]; dfs(cut,m-1); for (int j=m;j>=1;j--) { int v=j; for(int k=1;k<v;k++) { dp[x][v]=max(dp[x][v],dp[x][v-k]+dp[cut][k]); } } } } int main() { int n,m; while(cin>>n>>m) { memset(dp,0,sizeof(dp)); if (!n&&!m) return 0; int a,i; for (i=0;i<=n;i++) g[i].clear(); for (i=1;i<=n;i++) { cin>>a>>dp[i][1]; g[a].push_back(i); } dfs(0,m+1); cout<<dp[0][m+1]<<endl; } }
相关文章推荐
- php多文件上传
- WebView使用总结
- Runtime那些事儿(消息机制)
- svn版本管理系统的安装 centos+subversion+apache+jsvnadmin
- bzoj1180
- 软件工程个人作业01
- 记录-java(jxl) Excel导入数据库
- 大话设计模式-简单工厂模式(1)
- python (7)读取整个目录的所有文件夹并存入
- MySQL注入
- 获取当前的服务器的时间戳
- ALV中为日期字段添加F4
- 浅谈 java 字符串
- scrapy ☞ 发送邮件配置
- vim配置总结
- oracle存储过程异常捕获
- PAT (Basic Level)1030. 完美数列
- 什么是光滑的函数?
- JDK的配置环境
- C/C++函数指针和回调函数