#ATagc060b. [AGC060B] Unique XOR Path

[AGC060B] Unique XOR Path

题目描述

有一个 NNMM 列的网格。你需要在网格的每个格子中填写一个整数,要求每个整数在 002K12^K-1 之间,并且满足以下条件:

  • 从左上角出发,每次只能向右或向下移动到相邻的格子,最终到达右下角。我们考虑所有这样的路径。对于一条路径,如果经过的所有格子(包括起点和终点)中的整数的 XOR\mathrm{XOR} 总和为 00,则称这条路径为好路径
  • 恰好只有一条好路径,并且这条路径正好是由字符串 SS 所表示的路径。字符串 SS 表示的路径是:对于每个 ii1iN+M21 \leq i \leq N+M-2),第 ii 次移动时,如果 SS 的第 ii 个字符是 R,则向右移动;如果是 D,则向下移动。

请判断是否存在一种整数填写方案,使得上述条件成立。

每个输入文件包含 TT 个测试用例。

位运算 XOR\mathrm{XOR} 的定义如下:对于非负整数 A,BA, B,它们的按位 XOR\mathrm{XOR}(记作 ABA \oplus B)的每一位,如果 AABB 在该位上只有一个为 11,则结果为 11,否则为 00

例如,35=63 \oplus 5 = 6(二进制表示为:011101=110011 \oplus 101 = 110)。 一般地,kk 个非负整数 p1,p2,p3,,pkp_1, p_2, p_3, \dots, p_k 的按位 XOR\mathrm{XOR} 定义为 $(\dots((p\_1 \oplus p\_2) \oplus p\_3) \oplus \dots \oplus p\_k)$,并且可以证明其结果与顺序无关。

输入格式

输入通过标准输入给出,格式如下:

TT
case1case_1
case2case_2
\vdots
caseTcase_T

每个测试用例格式如下:

NN MM KK SS

输出格式

对于每个测试用例,如果存在满足条件的整数填写方案,输出 Yes,否则输出 No。输出中的字母大小写均可。

样例 1

输入

4
2 2 1
RD
4 3 1
RDDDR
15 20 18
DDRRRRRRRDDDDRRDDRDRRRRDDRDRDDRRR
20 15 7
DRRDDDDDRDDDRRDDRRRDRRRDDDDDRRRDD

输出

Yes
No
Yes
No

说明/提示

数据范围

  • 1T1001 \leq T \leq 100
  • 2N,M302 \leq N, M \leq 30
  • 1K301 \leq K \leq 30
  • SS 是一个恰好包含 N1N-1DM1M-1R 的字符串
  • 输入的所有数均为整数

样例解释 1

例如对于第 1 个测试用例,可以构造如下的网格:

11
00

由 ChatGPT 4.1 翻译