#TCA6. 骑士团
骑士团
题目背景
🏰 在古老的王国中,骑士团准备展开一次重要的远征。
军械库中一共有 N 件装备,但运输队只能携带一个容量有限的行囊,最大承载能力为 V。
这些装备并非彼此独立——由于传承、组合或使用限制,装备之间形成了严格的层级依赖关系:
若要携带某件装备,就必须同时携带它的所有上级祖先装备。
所有装备的依赖关系恰好构成一棵有根树。
问题描述
每件装备有唯一编号 i(编号从 1 到 N),并包含以下属性:
- 体积
v_i:携带该装备需要占用的行囊空间 - 价值
w_i:携带该装备能获得的价值 - 上级装备
p_i:该装备所依赖的父装备编号
依赖规则
- 若
p_i = -1,代表该装备是树根(传承链起点,无上级依赖); - 数据保证所有装备的依赖关系构成一棵合法的有根树;
- 选择任意一件装备时,必须同时选择它的父节点、祖父节点,直至根节点(整条祖先链)。
在行囊总容量不超过 V 的前提下,选择若干装备,使得总价值最大。
请输出这个最大总价值。
输入格式
第一行:两个整数 N、V,分别表示装备数量和行囊最大容量
接下来 N 行:第 i 行包含三个整数 v_i, w_i, p_i,依次表示第 i 件装备的体积、价值、父装备编号
输出格式
输出一个整数,表示规则允许下的最大总价值
数据范围
- 根装备:
- 非根装备:
- 输入保证依赖关系构成一棵合法有根树
样例输入
5 7
2 3 -1
2 2 1
3 5 1
4 7 2
3 6 2
样例输出
11
样例解释
样例中装备的树形结构:
- 根节点:1号装备(v=2, w=3)
- 1的子节点:2号(v=2,w=2)、3号(v=3,w=5)
- 2的子节点:4号(v=4,w=7)、5号(v=3,w=6)
在容量 7 的限制下,最优选择为1+3,总体积 2+3=5 ≤7,总价值 3+5=8;或1+2+5,总体积 2+2+3=7,总价值 3+2+6=11,即为最大价值。