hdu 1561
有依赖的背包,用树形dp解
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 205
using namespace std;
int n,m;
int f[maxn][maxn]; struct node
{
int pre;
int cnt_son;
int son[maxn];
int value;
} no[maxn]; void dfs(int x)
{
f[x][]=no[x].value;
int v;
for(int i=; i<no[x].cnt_son; i++)
{
v=no[x].son[i];
dfs(v);
for(int j=m+; j>; j--)//从大往小更新,结果不会覆盖;
{
for(int k=; k<j; k++)//不能更新f[x][1]点
{
f[x][j]=max(f[x][j],f[x][j-k]+f[v][k]);
}
}
}
} int main()
{
int fa;
while(scanf("%d%d",&n,&m)&&(n+m))
{
memset(f,,sizeof f);
for(int i=; i<=n; i++)
{
no[i].cnt_son=;
no[i].pre=;
no[i].value=;
}
for(int i=; i<=n; i++)
{
scanf("%d%d",&no[i].pre,&no[i].value);
fa=no[i].pre;
no[fa].son[no[fa].cnt_son]=i;
no[fa].cnt_son++;
}
dfs();
printf("%d\n",f[][m+]);//增加了一个节点,所以用m+1
}
return ;
}
/*
11 5
0 1
1 2
1 1
2 1
2 2
3 1
6 9
0 2
8 2
8 2
9 1
*/
hdu 1561的更多相关文章
- HDU 1561 树形DP(入门)
		题目链接: HDU 1561 The more, The Better #include <iostream> #include <cstdio> #include < ... 
- HDU 1561 The more, The Better(树形背包)
		The more, The Better Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ... 
- HDU 1561&HDU  3449 一类简单依赖背包问题
		HDU 1561.这道是树形DP了,所谓依赖背包,就是选A前必须选B,这样的问题.1561很明显是这样的题了.把0点当成ROOT就好,然后选子节点前必须先选根,所以初始化数组每一行为该根点的值.由于多 ... 
- HDU 1561 (树形DP+背包)
		题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1561 题目大意:从树根开始取点.最多取m个点,问最大价值. 解题思路: cost=1的树形背包. 有 ... 
- HDU 1561 The more, The Better(树形dp之树形01背包)
		传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1561 The more, The Better Time Limit: 6000/2000 MS (J ... 
- hdu 1561(树形dp)
		题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1561 思路:dp[u][i]表示以u为根的树选了i个子节点. #include<iostream ... 
- HDU 1561:The more, The Better(有依赖的树型背包)
		http://acm.hdu.edu.cn/showproblem.php?pid=1561 题意:有n个点,容量为m,每个点有一个价值,还给出n条边,代表选第i个点之前必须先选ai,问最多的价值能取 ... 
- hdu 1561【树形dp+01背包】
		http://acm.hdu.edu.cn/showproblem.php?pid=1561 很容易想到如果是要攻克v城需要先攻克u城的话,可以建u到v的边.但是如果能够直接攻克u城呢?无边可建,这样 ... 
- HDU 1561 树形DP入门
		The more, The Better Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ... 
- hdu  1561 The more, The Better (树上背包)
		The more, The Better Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ... 
随机推荐
- 解决MS Office下载网站数据失败的问题
			最近遇到在MS Excel中建立的Web Query在创建完成后过了一段时间(或关闭文件后再次打开文件并刷新数据)出现无法刷新的问题,点击刷新时报错如下: 无法下载您要求的信息. 这是一个很不友好的报 ... 
- winform版简易http服务器
			传人url运行(url以/结尾,例如:http://localhost:8080/web/ 监听这个url// 在浏览器 中输入 http://localhost:8080/web/?name=tes ... 
- 免费主机kilu使用
			我也是看了这篇文章:http://www.cnblogs.com/tenny/archive/2011/03/30/1999957.html 采取申请注册. 主机申请地址:http://www.kil ... 
- WPF、Silverlight项目中使用柱状图、饼状图、折线图
			在开发的过程中,可能会遇到柱状图.饼状图.折线图来更好的显示数据,最近整理了一下,遂放出来望需要的朋友可以参考.本文仅仅是简单显示,如需复杂显示效果请参考官网代码示例.----本文代码使用WPF,Si ... 
- 【转载】 c语言inline函数的使用
			c语言inline函数的使用 转载自:http://blog.chinaunix.net/uid-21843265-id-3056446.html 大学在教科书上学习过inline函数,定义为inli ... 
- MyEclipse SVN 插件
			一.下载SVN插件subclipse 下载地址:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240 在打开的网 ... 
- 线程间操作无效: 从不是创建控件“label4”的线程访问它。
			//主线程 public delegate void UpdateMessage(string mes); public void UpdatePortMessage(string mes) { th ... 
- Source Insight 技巧总结
			以下文章转载自网络:http://blog.csdn.net/junjie319/article/details/6910992 http://www.cnblogs.com/bluestorm/ar ... 
- Java权限讲解
			Java访问权限就如同类和对象一样,在Java程序中随处可见. Java的访问权限,根据权限范围从大到小为:public > protected > package > privat ... 
- Mysql单实例脚本自动化安装
			安装包:mysql-5.6.31.tar.gz 已有配置文件:my.cnf *注意:本次Mysql的配置文件是在my.cnf的基础上更改得到的,my.cnf存放路径为/opt/rh/my.cnf 脚本 ... 
