题目描述
我们有一个 N 行 M 列的网格。你想要在网格中的每个方格里写一个介于 0 和 2K−1 之间的整数,以满足以下条件。
- 考虑从左上角方格开始、一直向右或向下移动到相邻方格,直到到达右下角方格的路径。如果路径上经过的方格上整数的mathrmXOR(即异或运算)为 0,则该路径被称为好路径。
- 存在且只存在一条好路径,该路径由字符串 S 表示。字符串 S 表示的路径是这样的:对于每个 i(1leqileqN+M−2),如果 S 的第 i 个字符为
R
,则第 i 步向右移动;如果 S 的第 i 个字符为 D
,则第 i 步向下移动。
确定是否存在一种方法来写入整数满足上述条件。
对于每个输入文件,解决 T 个测试用例。
什么是位运算的 mathrmXOR?
非负整数 A 和 B 的位运算 mathrmXOR,用 AoplusB 表示,定义如下。
- 当以二进制形式表示 AoplusB 时,第 k 位(kgeq0)为 1,当且仅当 A 和 B 的第 k 位中只有一个为 1,否则为 0。
例如,3oplus5=6(二进制表示:011oplus101=110)。
通常,k 个非负整数 p1,p2,p3,dots,pk 的位运算 mathrmXOR 被定义为 (dots((p1oplusp2)oplusp3)oplusdotsopluspk),可以证明该运算与 p1,p2,…,pk 的顺序无关。
约束条件
- 1leqTleq100
- 2leqN,Mleq30
- 1leqKleq30
- S 是一个包含恰好 N−1 个
D
和 M−1 个 R
的字符串。
- 输入中的所有数字都是整数。
输入
从标准输入中按以下格式给出输入:
T
case1
case2
vdots
caseT
每个测试用例的格式如下:
N M K
S
输出
对于每个测试用例,如果存在一种满足条件的整数写入方法,则输出 Yes
,否则输出 No
。输出中的每个字符都可以是大写或小写字母。
样例输入 1
样例输出 1
例如,对于第一个测试用例,你可以构建以下网格: