#4720. 树形依赖背包
树形依赖背包
题目描述
给定一棵有根树,树上每个节点对应一件物品,每件物品有占用体积和对应价值。 选取规则:如果要选任意子节点物品,必须先选中它所有祖先(父、祖父直到树根)。 给定背包总容量限制,在总体积不超过背包容量的前提下,选出若干节点,使总价值最大,请输出最大总价值。
输入描述
第一行两个整数 n, c,分别代表树的节点总数、背包最大容量。
接下来一共 n 行,每行三个整数 p v w:
p:当前节点的父节点编号;p = -1代表该节点是整棵树的根;v:当前节点物品占用的体积;w:当前节点物品的价值。 所有节点编号范围:0 ~ n-1。
输出描述
仅输出一行一个整数,表示背包容量为 c 时可以得到的最大总价值。
输入样例
3 5
-1 2 10
0 2 12
0 1 5
输出样例
27
数据范围
- 节点数量:
- 背包容量:
- 单个物品体积:
- 单个物品价值:
- 输入保证恰好只有一个根节点(仅一行输入
p=-1),输入构成一棵合法有根树。