#agc060b. [agc060_b]Unique XOR Path
[agc060_b]Unique XOR Path
题目描述
我们有一个 行 列的网格。你想要在网格中的每个方格里写一个介于 和 之间的整数,以满足以下条件。
- 考虑从左上角方格开始、一直向右或向下移动到相邻方格,直到到达右下角方格的路径。如果路径上经过的方格上整数的(即异或运算)为 0,则该路径被称为好路径。
- 存在且只存在一条好路径,该路径由字符串 表示。字符串 表示的路径是这样的:对于每个 (),如果 的第 个字符为
R
,则第 步向右移动;如果 的第 个字符为D
,则第 步向下移动。
确定是否存在一种方法来写入整数满足上述条件。
对于每个输入文件,解决 个测试用例。
什么是位运算的 ?
非负整数 和 的位运算 ,用 表示,定义如下。
- 当以二进制形式表示 时,第 位()为 1,当且仅当 和 的第 位中只有一个为 1,否则为 0。
例如,(二进制表示:)。 通常, 个非负整数 的位运算 被定义为 $(\\dots ((p_1 \\oplus p_2) \\oplus p_3) \\oplus \\dots \\oplus p_k)$,可以证明该运算与 的顺序无关。
约束条件
- 是一个包含恰好 个
D
和 个R
的字符串。 - 输入中的所有数字都是整数。
输入
从标准输入中按以下格式给出输入:
每个测试用例的格式如下:
输出
对于每个测试用例,如果存在一种满足条件的整数写入方法,则输出 Yes
,否则输出 No
。输出中的每个字符都可以是大写或小写字母。
样例输入 1
4
2 2 1
RD
4 3 1
RDDDR
15 20 18
DDRRRRRRRDDDDRRDDRDRRRRDDRDRDDRRR
20 15 7
DRRDDDDDRDDDRRDDRRRDRRRDDDDDRRRDD
样例输出 1
Yes
No
Yes
No
例如,对于第一个测试用例,你可以构建以下网格:
11
00