AT_abc311_h [ABC311Ex] Many Illumination Plans
题目描述
给定一棵根节点为1的有根树 $T$,树中共有 $N$ 个节点,编号从 $1$ 到 $N$。对于每个顶点 $i$($2 \leq i \leq N$),其父节点是 $P_i$。每个节点都有两个非负整数属性,分别称为**美丽值**和**重量**。节点 $i$ 的美丽值为 $B_i$,重量为 $W_i$。此外,节点被涂上红色或蓝色,其颜色用整数 $C_i$ 表示:当 $C_i=0$ 时,节点 $i$ 为红色;当 $C_i=1$ 时,为蓝色。
对于每一个节点 $v$,定义函数 $F(v)$ 表示以下问题的解:
> 从树 $T$ 中提取出以 $v$ 为根的子树,称之为 $U$。对 $U$ 可以进行若干次以下操作(操作不会改变未删除节点的属性):
>
> - 选择一个非根节点 $c$,设 $c$ 的父节点为 $p$。
> - 对于所有与 $c$ 相连的边:
> - 假设边的另一端是 $u$,删除这条边,然后用一条以 $p$ 为父节点的新边连接 $p$ 和 $u$。
> - 删除节点 $c$ 和边 $p,c$。
>
> 最终的 $U$ 满足以下条件即为**好的有根树**:
>
> - $U$ 中相连节点的颜色不同。
> - 所有节点的重量总和不超过 $X$。
>
> 找出在所有可能的好的有根树中,节点美丽值总和的最大值。
请输出每个节点 $v$ 对应的 $F(v)$,即 $F(1), F(2), \dots, F(N)$。
输入格式
输入从标准输入读取,格式如下:
> $N$ $X$ $P_2$ $P_3$ $\dots$ $P_N$ $B_1$ $W_1$ $C_1$ $B_2$ $W_2$ $C_2$ $\vdots$ $B_N$ $W_N$ $C_N$
输出格式
输出 $N$ 行。每行输出对应节点 $i$ 的最大美丽值 $F(i)$。
### 数据范围
- $2 \leq N \leq 200$
- $0 \leq X \leq 50000$
- $1 \leq P_i \leq i - 1$
- $0 \leq B_i \leq 10^{15}$
- $0 \leq W_i \leq X$
- $C_i$ 为 $0$ 或 $1$
- 所有输入的值均为整数
## 示例解释
对于 $v=1$,可以首先选择 $c=2$,然后选择 $c=3$,这样经过操作后的 $U$ 是一个好的有根树。该树中节点的美丽值总和是 $2 + 7 = 9$,为所有可能的好的有根树中的最大值,因此 $F(1) = 9$。
对于 $v=2$,选择 $c=4$ 后,得到的 $U$ 也是一个好的有根树。此时美丽值总和为 $4 + 6 = 10$,因此 $F(2) = 10$。
**本翻译由 AI 自动生成**
说明/提示
### 制約
- $ 2\ \leq\ N\ \leq\ 200 $
- $ 0\ \leq\ X\ \leq\ 50000 $
- $ 1\ \leq\ P_i\ \leq\ i\ -\ 1 $
- $ 0\ \leq\ B_i\ \leq\ 10^{15} $
- $ 0\ \leq\ W_i\ \leq\ X $
- $ C_i $ は $ 0 $ または $ 1 $
- 入力される値はすべて整数
### Sample Explanation 1
$ v=1 $ の場合、まず $ c=2 $ を選び、次に $ c=3 $ を選ぶと $ U $ は図のように変化して、操作後の $ U $ は良い根付き木になります。 この木に含まれる頂点の美しさの総和は $ 2\ +\ 7\ =\ 9 $ で、良い根付き木の中で最大です。よって $ F(1)\ =\ 9 $ です。 !\[image\](https://img.atcoder.jp/ghi/abc311h\_e9c1607d075d1352a8dc9ec07fe3ef4991c33a9d56626c4ab3f337e0c9d8a429.jpg) $ v=2 $ の場合、 $ c=4 $ を選ぶと $ U $ は図のように変化して、操作後の $ U $ は良い根付き木になります。 この木に含まれる頂点の美しさの総和は $ 4\ +\ 6\ =\ 10 $ で、良い根付き木の中で最大です。よって $ F(2)\ =\ 10 $ です。 !\[image2\](https://img.atcoder.jp/ghi/abc311h2\_fbbe94f219fde3a66d7846819b00d81f125609dd63a1a6fe3028a114991129a3.jpg)