#Tree25. 树上背包模板

树上背包模板

🔢 输出 1~n 数列

📄 题目描述

给定一棵以 1 为根的树,每个结点 i 有两个属性:

体积 v[i] 价值 w[i]

现在你有一个容量为 m 的背包,需要从树上选择若干个结点放入背包,要求:

如果选择了结点 u,那么它的父节点也必须被选择 选择结点的总体积不能超过 m

请你求出最大总价值。

⌨️ 输入格式

第一行两个整数 n, m 第二行 n-1 个整数 fa[2], fa[3], ..., fa[n],表示每个点的父节点 接下来 n 行,每行两个整数 v[i], w[i]

📤 输出格式

输出一个整数,表示最大总价值


🧪 样例

5 10
1 1 2 2
2 5
3 8
1 3
2 4
1 2
22

📊 数据规模与约定

1 <= n <= 100 1 <= m <= 1000 1 <= v[i] <= m 1 <= w[i] <= 1000