你将解决一个与扑克游戏“斗地主”相关的问题。
游戏介绍
“斗地主”是一种由三名玩家轮流出牌的纸牌游戏。设这三名玩家分别为 A、B 和 C。每位玩家手里持有若干张牌,游戏持续进行,直到某位玩家出完所有的牌。
玩家 A 和 B 属于农民阵营。如果 A 或 B 中任意一人出完了所有的牌,则农民获胜。玩家 C 独自组成地主阵营,如果 C 出完了所有的牌,则地主获胜。
出牌规则
在本题中,每张牌上都写有一个在 $[1, n]$ 范围内的整数,称为牌的点数。牌的点数按升序排列:$1, 2, \dots, n$。
本题中只允许以下两种牌型:
- 单张:任意单张牌。
- 对子:两张点数相同的牌。
与通常的斗地主游戏不同,在本题中,玩家只有在手牌中恰好只有一张该点数的牌时,才能出该点数的单张牌。换句话说,手牌中的对子不能拆开作为两张单张牌打出。
在每一轮出牌中,都会有一名玩家作为该轮的领出玩家。领出玩家首先行动,可以打出任意合法的牌型。然后,从下一名玩家开始,玩家按顺序轮流出牌。在轮到每位玩家时,他们可以做出以下两种决策之一:
- 打出与本轮最后一次打出的牌型相同,且点数严格更大的牌型。
- 选择过牌(pass)。
在一名玩家出牌后,如果其他两名玩家都连续选择过牌,则当前轮结束。此时,最后一次成功出牌的玩家成为下一轮的领出玩家。然后开始新的一轮。
题目描述
在本题中,考虑以下情况:
- 地主 C 只剩下一张牌,点数为 $p_c$。
- 两名农民 A 和 B 的手牌由两个长度为 $n$ 的字符串 $s_a$ 和 $s_b$ 描述,字符串仅由字符
0、1和2组成。这里,第 $i$ 个字符表示对应玩家持有的点数为 $i$ 的牌的数量。
所有玩家的手牌都是公开信息;也就是说,每位玩家在做出决策时都知道所有玩家持有的确切手牌。玩家 A 是第一轮的领出玩家,且三名玩家总是按照 $A \to B \to C \to A \to \dots$ 的顺序轮流出牌。你需要确定在所有玩家都采取最优策略的情况下,农民阵营是否能够获胜。
输入格式
每个测试点包含多组测试数据。输入的第一行包含一个整数 $T$($1 \le T \le 10^5$),表示测试数据的组数。对于每组测试数据:
第一行包含一个整数 $n$($1 \le n \le 2.5 \times 10^5$)。
第二行包含一个长度为 $n$ 的字符串 $s_a$,仅由 0、1 和 2 组成,表示农民 A 的手牌。
第三行包含一个长度为 $n$ 的字符串 $s_b$,仅由 0、1 和 2 组成,表示农民 B 的手牌。
第四行包含一个整数 $p_c$($1 \le p_c \le n$),表示地主 C 唯一一张牌的点数。
保证每位玩家至少持有一张牌。
同时保证所有测试数据的 $n$ 之和不超过 $10^6$。
输出格式
对于每组测试数据,输出一行。如果农民阵营可以获胜,输出 Yes;否则,输出 No。
样例
输入样例 1
4 9 001110201 002110211 7 9 110200000 222000000 7 9 222000000 110000000 7 9 111000002 111000210 7
输出样例 1
Yes No Yes No
说明
我们对第一组样例数据进行解释。
| # | A | B | C | 出牌过程 |
|---|---|---|---|---|
| 1 | 3,4,5,7,7,9 | 3,3,4,5,7,7,8,9 | 7 | A (3) $\to$ B (8) $\to$ C (pass) $\to$ A (9) $\to$ B (pass) $\to$ C (pass) |
| 2 | 4,5,7,7 | 3,3,4,5,7,7,9 | 7 | A (4) $\to$ B (9) $\to$ C (pass) $\to$ A (pass) |
| 3 | 5,7,7 | 3,3,4,5,7,7 | 7 | B (3,3) $\to$ C (pass) $\to$ A (7,7) $\to$ B (pass) $\to$ C (pass) |
| 4 | 5 | 4,5,7,7 | 7 | A (5) |