HDU 1561(树形dp)
2016-08-15 16:17
441 查看
#include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<algorithm> #include<iostream> using namespace std; int dp[210][210]; vector<int> list[210]; int N, M; void dfs(int father) { for (decltype(list[father].size())i = 0; i <list[father].size(); i++) { int child = list[father][i]; if (list[child].size() > 0) { dfs(child); } for (int j = M; j >=2; j--) { for (int k =1; k < j; k++) { dp[father][j] = max(dp[father][j], dp[father][k] + dp[child][j - k]); } } } } int main() { while (scanf("%d%d",&N,&M), N + M) { M++; memset(dp, 0, sizeof(dp)); for (int i = 1; i <= N; i++) { int a, b; cin >> a >> b; list[a].push_back(i); for (int j = 1; j <= M; j++) { dp[i][j] = b; } } dfs(0); for (int i = 0; i <= N; i++) { list[i].clear(); } cout << dp[0][M] << endl; } return 0; }
相关文章推荐
- Win2003利用dfs(分布式文件系统)在负载均衡下的文件同步配置方案
- 详解Android应用中屏幕尺寸的获取及dp和px值的转换
- 基于Android中dp和px之间进行转换的实现代码
- Android中dip、dp、sp、pt和px的区别详解
- win2003分布式文件系统(dfs)配置方法[图文详解]
- win2003分布式文件系统及其部署 图文教程
- LFC1.0.0 版本发布
- Android dpi,dip,dp的概念以及屏幕适配
- Hadoop2.6+jdk8的安装部署(1)——使用jar包安装部署【详细】
- Hadoop FS Shell
- DFS使用方法总结
- Android px、dp、sp之间相互转换
- HP data protector软件学习1--基本角色与基本工作流程
- HP data protector软件学习2--软件组成与界面介绍
- FastDFS注意事项
- 无忧技术带您预览DFS(分布式文件系统)管理控制台
- android中像素单位dp、px、pt、sp的比较
- C 语言实现迷宫 DFS算法
- Android对px和dip进行尺寸转换的方法
- 深度优先搜索算法