luogu#P11189. 「KDOI-10」水杯降温
「KDOI-10」水杯降温
题目背景
English Statement. You must submit your code at the Chinese version of the statement.
本场比赛所有题目从标准输入读入数据,输出到标准输出。
题目描述
小 S 有一棵包含 个节点的有根树,且根为节点 。节点 上放置了一个初始水温为 的水杯。
在不知道水温的情况下拿起水杯喝水并被烫了 inf 次的小 S 决定将这些水杯的水温全部变为 后再喝它们。
现在,小 S 可以分别进行以下两种操作任意次:
- 使用一个在节点 的加热装置。这会使以 为根的子树内所有水杯里的水温均增加 ;
- 或者,从某个叶子节点 向根方向吹一阵风。这会使 到根所有水杯里的水温均减少 。
请你帮小 S 判断:能否将所有节点上的水杯的水温都变为 。
输入格式
从标准输入读入数据。
本题有多组测试数据。
输入的第一行包含一个正整数 ,表示测试点编号。 表示该测试点为样例。
第二行包含一个正整数 ,表示测试数据组数。
对于每组测试数据:
- 第一行包含一个正整数 ,表示节点数量。
- 第二行 个正整数 , 表示 节点的父亲节点编号。保证 。
- 第三行 个整数 ,表示初始水温。
输出格式
输出到标准输出。
对于每组测试数据:
- 如果可以将水温变为 ,输出一行一个字符串
Huoyu
; - 如果无法将水温变为 ,输出一行一个字符串
Shuiniao
。
0
5
5
1 1 2 3
6 5 2 2 1
5
1 1 2 2
6 5 1 2 1
5
1 1 2 2
4 -1 5 -2 -2
5
1 1 2 2
6 -4 8 -3 -3
5
1 1 2 2
-1 -1 -1 -4 -1
Shuiniao
Huoyu
Shuiniao
Shuiniao
Huoyu
提示
【样例 1 解释】
记 表示在节点 使用加热装置的操作, 表示从节点 吹一阵风的操作, 表示将操作序列 重复 次。
- 对于第一、三、四组测试数据,可以证明,小 S 无法将所有水杯的水温都变为 ;
- 对于第二组测试数据,一种可能的操作序列为:;
- 对于第五组测试数据,一种可能的操作序列为:。
【样例 2】
见选手目录下的 water/water2.in
与 water/water2.ans
。
这个样例满足测试点 的约束条件。
【样例 3】
见选手目录下的 water/water3.in
与 water/water3.ans
。
这个样例满足测试点 的约束条件。
【样例 4】
见选手目录下的 water/water4.in
与 water/water4.ans
。
这个样例满足测试点 的约束条件。
【样例 5】
见选手目录下的 water/water5.in
与 water/water5.ans
。
这个样例满足测试点 的约束条件。
【样例 6】
见选手目录下的 water/water6.in
与 water/water6.ans
。
这个样例满足测试点 的约束条件。
【样例 7】
见选手目录下的 water/water7.in
与 water/water7.ans
。
这个样例满足测试点 的约束条件。
【数据范围】
记 为单个测试点内所有测试数据中 的和。
对于全部的测试数据,保证:
- ;
- ,;
- 对于任意 ,;
- 对于任意 ,。
测试点 | 特殊性质 | |||
---|---|---|---|---|
无 | ||||
A | ||||
B | ||||
C | ||||
无 | ||||
- 特殊性质 A:对于任意 ,;
- 特殊性质 B:对于任意 ,,其中设 ;
- 特殊性质 C:树的深度不超过 ,其中深度指所有节点到根的边数中的最大值。
【提示】
本题输入输出量较大,请使用适当的 I/O 方式。