#arc157e. [arc157_e]XXYX Binary Tree
[arc157_e]XXYX Binary Tree
问题描述
给定一个有 个顶点的根树,顶点编号为 到 ,根是顶点 。每个顶点 (不包括根)的父节点是顶点 。每个顶点(包括根)没有孩子或者有两个孩子。
判断是否可以在给定的树的每个顶点上写入字符 X
和 Y
,满足以下条件。
条件: 对于树的每一条边,考虑将从父节点 到子节点 的顺序连接的两个端点上的字符连接起来得到的长度为 2 的字符串。这样得到的 个字符串中,
- 恰好有 个是
XX
, - 恰好有 个是
XY
, - 恰好有 个是
YX
, - 没有一个是
YY
。
你需要解决 个测试用例。
约束条件
- 对于每个输入,所有测试用例中 的总和最多为 。
- 每个顶点 最多作为父节点 出现 零次或两次。
输入
输入使用以下格式从标准输入给出:
每个测试用例 的格式如下:
输出
输出 行。第 行应该包含 Yes
(如果存在一种方式写字符来满足条件)或 No
(否则)。
样例一
3
7 2 2 2
1 1 2 2 3 3
7 0 2 4
1 1 2 2 3 3
7 2 0 4
1 1 2 2 4 4
样例一输出
Yes
Yes
No
对于第一个测试用例,如果你按顺序在顶点 到 上写入 XXYXYXX
,
- 从边 ,我们得到
XX
, - 从边 ,我们得到
XY
, - 从边 ,我们得到
XX
, - 从边 ,我们得到
XY
, - 从边 ,我们得到
YX
, - 从边 ,我们得到
YX
。
XX
、XY
和 YX
每个都出现了两次,所以满足条件。
对于第二个测试用例,满足条件的一种方式是写入 XYYXXXX
。
对于第三个测试用例,没有满足条件的方式。