atcoder#ARC157E. [ARC157E] XXYX Binary Tree
[ARC157E] XXYX Binary Tree
题目描述
頂点の根付き木が与えられます. 頂点には から の相異なる整数の番号が付いており,根は頂点 です. 根以外の各頂点 の親は頂点 であり,根を含む各頂点は,子を持たないか,ちょうど 個の子を持つかのいずれかです.
与えられた木の各頂点に X
, Y
のいずれかの文字を書き込んで,以下の条件を満たすことが可能かどうかを判定してください.
条件: 木の各辺に関して,両端点に書き込まれた文字を親 から子 に向かう順に並べて得られる長さ の文字列を考える. そのような文字列はのべ 個あるが,そのうち
- ちょうど 個が
XX
, - ちょうど 個が
XY
, - ちょうど 個が
YX
であり, YY
は存在しない.
個のテストケースが与えられるので,それぞれについて答えてください.
输入格式
入力は以下の形式で標準入力から与えられる.
各テストケース は以下の形式である.
输出格式
行出力せよ. 行目には, 番目のテストケースについて,条件を満たす文字の書き込み方が存在するなら Yes
を,存在しないなら No
を出力せよ.
题目大意
给你一棵有根树,根为 。你需要把每个点标号为 X
,Y
之一,使得对于 个由父亲和儿子顺序组成的长度为 的字符串中:
- 有 个
XX
。 - 有 个
XY
。 - 有 个
YX
。 - 不存在
YY
。
保证 ,而你只需要判断是否有解。
多组数据
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
提示
制約
- つの入力に含まれるテストケースについて, の総和は 以下である.
- 各頂点 は親 として合計 回または 回現れる.
Sample Explanation 1
番目のテストケースについて,たとえば頂点 から の順に XXYXYXX
と書き込めば, - 辺 で得られる文字列は XX
, - 辺 で得られる文字列は XY
, - 辺 で得られる文字列は XX
, - 辺 で得られる文字列は XY
, - 辺 で得られる文字列は YX
, - 辺 で得られる文字列は YX
, であり,XX
, XY
, YX
がそれぞれ 個ずつとなって条件を満たします. 番目のテストケースについて,たとえば XYYXXXX
と書き込めば条件を満たします. 番目のテストケースについては,どのように書き込んでも条件を満たしません.