已结束 GESP欢乐赛#47

A4961 | 神甘宁-魄袭

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

在游戏《三国杀》中,神甘宁是一名权一武将,拥有"魄袭"和"劫营"两个技能。其中,"魄袭"技能的具体描述如下:

出牌阶段限一次,你可以执行以下操作:
- 1. 观看一名其他角色的手牌。
- 2. 选择弃置你与其手牌中共计四张 $\textbf{不同花色}$ 的牌(即四张牌的花色各不相同)。

根据你弃置的$\textbf{自己的牌数量}$,触发以下效果:

- $\textbf{弃置 0 张}$:你的体力上限减1。
- $\textbf{弃置 1 张}$:你结束出牌阶段,且本回合手牌上限减1。
- $\textbf{弃置 3 张}$:你回复1点体力。
- $\textbf{弃置 4 张}$:你摸4张牌(即"制衡"效果)。

现在我们用 a 代表梅花, b 代表红桃,c 代表方块, d 代表黑桃,并且已知以下信息:

- 对手的手牌数量及每张牌的花色。
- 你自己的手牌数量及每张牌的花色。

请根据"魄袭"技能的规则,依次判断以下四种情况是否能够实现:

- $\textbf{刚好弃置对手的 4 张手牌}$(即不弃置自己的牌)
- $\textbf{刚好弃置对手的 3 张手牌}$(即弃置自己的1张牌)
- $\textbf{回复自己 1 点体力}$(即弃置自己的3张牌和对手的1张牌)
- $\textbf{制衡 4 张牌}$(即弃置自己的4张牌,不弃置对手的牌,然后摸4张牌)

为了方便理解,接下来进行举例说明:

1.假设对手的手牌为 $a, a, b, c$, 自己的手牌为 $a, b, c, d$,我们可以有以下选择:
- 弃置对手的 $a$,弃置自己的 $b, c, d$, 然后回复自己 $1$ 点体力,也可以通过弃置对手的 $b$ 和 弃置自己的 $a, c, d$ 来达到同样的效果。
- 弃置对手的 $a, b$ 且 弃置自己的 $c, d$,本题不考察这种情况
- 弃置对手的 $a, b, c$ 且 弃置自己的 $d$, 结束出牌阶段,且本回合你的手牌上限减 $1$。
- 弃置自己的 $a, b, c, d$,然后进行制衡,摸 $4$ 张牌。

2.假设对手的手牌为 $a, b, c, d$,自己的手牌为 $a$,我们可以有以下选择:

- 可以弃置对手的 $a, b, c, d$ ,你的体力上限减 $1$。
- 可以弃置对手的 $b, c, d$ 和自己的 $a$,结束出牌阶段,且本回合你的手牌上限减 $1$。

3.假设对手的手牌为 $a, b, c$,自己的手牌为 $a, b, c$,这样达不到任何效果,因为凑不齐 $4$ 花色。

$\large{数据范围}$
- $1 \leq T \leq 5 \times 10^3$
- $2 \leq n + m \leq 160, 1 \leq n, m \leq 160$
- $0 \leq a \ 的数量 \leq 40$
- $0 \leq b \ 的数量 \leq 40$
- $0 \leq c \ 的数量 \leq 40$
- $0 \leq d \ 的数量 \leq 40$
- $s_i, t_i \in \{'a', 'b', 'c', 'd'\}$

输入格式

本题包含多组测试数据。

对于每一组测试数据:

第一行输入两个整数 $n, m$,其中 $n$ 代表自己的牌数, $m$ 代表你对手的牌数。

第二行输入一个长度为 $n$ 的字符串 $s$,代表自己的手牌花色。

第三行输入一个长度为 $m$ 的字符串 $t$,代表对手的手牌花色。

输出格式

对于每个测试用例,请依次判断以下四种情况在满足"魄袭"技能条件是否可行,并输出对应的 $4$ 位二进制字符串:


- 1. $\textbf{刚好弃置对手的 4 张手牌}(即不弃置自己的牌)$
- 2. $\textbf{刚好弃置对手的 3 张手牌}(即弃置自己的1张牌)$
- 3. $\textbf{回复自己 1 点体力}(即弃置自己的3张牌和对手的1张牌)$
- 4. $\textbf{制衡4张牌}(即弃置自己的4张牌,不弃置对手的牌,然后摸4张牌)$

输出格式:

一个 $4$ 位 $01$ 字符串(如1010),第 $i$ 位表示第 $i$ 种情况是否可行($1$ 表示可行,$0$ 表示不可行)。

输入输出样例

输入 #1
3
4 4
abcd
aabc
1 4
a
abcd
3 3
abc
abc
输出 #1
0111
1100
0000
C++ 编辑器
输入
输出