#ATagc060b. [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。输出中的字母大小写均可。
样例 1
输入
4
2 2 1
RD
4 3 1
RDDDR
15 20 18
DDRRRRRRRDDDDRRDDRDRRRRDDRDRDDRRR
20 15 7
DRRDDDDDRDDDRRDDRRRDRRRDDDDDRRRDD
输出
Yes
No
Yes
No
说明/提示
数据范围
- 是一个恰好包含 个
D和 个R的字符串 - 输入的所有数均为整数
样例解释 1
例如对于第 1 个测试用例,可以构造如下的网格:
11
00
由 ChatGPT 4.1 翻译