atcoder#AGC060B. [AGC060B] Unique XOR Path
[AGC060B] Unique XOR Path
题目描述
行 列のグリッドがあります. あなたはグリッドの各マスに 以上 以下の整数を書き込み,以下の条件を満たしたいです.
- 左上のマスを出発し,右または下に隣接するマスへの移動を繰り返して,右下のマスへと至るパスを考える. ここで,通ったマス (始点終点を含む) に書かれた整数の総 が になるパスを,よいパスと呼ぶことにする.
- よいパスはちょうど つだけ存在し,それは文字列 が表すパスである. 文字列 が表すパスとは,各 () について, 回目の移動の際, の 文字目が
R
なら右,D
なら下に進むようなパスである.
条件を満たす整数の書き込み方が存在するかどうか判定してください.
つの入力ファイルにつき, 個のテストケースを解いてください.
ビット単位 演算とは 非負整数 のビット単位 、 は、以下のように定義されます。
- を二進表記した際の () の位の数は、 を二進表記した際の の位の数のうち一方のみが であれば 、そうでなければ である。
例えば、 となります (二進表記すると: )。
一般に 個の非負整数 のビット単位 は $ (\dots\ ((p_1\ \oplus\ p_2)\ \oplus\ p_3)\ \oplus\ \dots\ \oplus\ p_k) $ と定義され、これは の順番によらないことが証明できます。
输入格式
入力は以下の形式で標準入力から与えられる.
各ケースは以下の形式で与えられる.
输出格式
各ケースに対し,条件を満たす整数の書き込み方が存在する場合は Yes
を,存在しないならば No
を出力せよ. 出力中の各文字は英大文字・小文字のいずれでもよい.
题目大意
请在一个 的方格表中,为每个方格填入一个 到 的整数,使得:
- 考虑从左上角到右下角,只向右或向下移动到相邻方格的一条路径。一条这样的路径被称为好的,当且仅当这条路径上所有方格中的数的异或和是 。
- 方格表中应恰存在一条好的路径。它是用一个给定的字符串 表示的。对每个 ,路径的第 次移动是向右,当且仅当 的第 个字符是 R;是向下,当且仅当 的第 个字符是 D。
判断这样的方格表是否存在。 组数据。
数据范围:
- 是一个恰包含 个 D 和 个 R 的字符串。
4
2 2 1
RD
4 3 1
RDDDR
15 20 18
DDRRRRRRRDDDDRRDDRDRRRRDDRDRDDRRR
20 15 7
DRRDDDDDRDDDRRDDRRRDRRRDDDDDRRRDD
Yes
No
Yes
No
提示
制約
- はちょうど 個の
D
と 個のR
からなる文字列 - 入力される数はすべて整数
Sample Explanation 1
例えば ケース目については,以下のようなグリッドを作れば良いです. 11 00