A4961 | 神甘宁-魄袭
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
在游戏《三国杀》中,神甘宁是一名权一武将,拥有"魄袭"和"劫营"两个技能。其中,"魄袭"技能的具体描述如下:
出牌阶段限一次,你可以执行以下操作:
- 1. 观看一名其他角色的手牌。
- 2. 选择弃置你与其手牌中共计四张 $\textbf{不同花色}$ 的牌(即四张牌的花色各不相同)。
根据你弃置的$\textbf{自己的牌数量}$,触发以下效果:
- $\textbf{弃置 0 张}$:你的体力上限减1。
- $\textbf{弃置 1 张}$:你结束出牌阶段,且本回合手牌上限减1。
- $\textbf{弃置 3 张}$:你回复1点体力。
- $\textbf{弃置 4 张}$:你摸4张牌(即"制衡"效果)。
现在我们用
- 对手的手牌数量及每张牌的花色。
- 你自己的手牌数量及每张牌的花色。
请根据"魄袭"技能的规则,依次判断以下四种情况是否能够实现:
- $\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'\}$
出牌阶段限一次,你可以执行以下操作:
- 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$,代表对手的手牌花色。
对于每一组测试数据:
第一行输入两个整数 $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. $\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
对于样例 $1$ 而言:
- 弃置对手的 $a$,弃置自己的 $b, c, d$, 然后回复自己 $1$ 点体力,也可以通过弃置对手的 $b$ 和 弃置自己的 $a, c, d$ 来达到同样的效果。
- 弃置对手的 $a, b, c$ 且 弃置自己的 $d$, 结束出牌阶段,且本回合你的手牌上限减 $1$。
- 弃置自己的 $a, b, c, d$,然后进行制衡,摸 $4$ 张牌。
所以答案为 $0111$。
对于样例 $2$ 而言:
- 可以弃置对手的 $a, b, c, d$ ,你的体力上限减 $1$。
- 可以弃置对手的 $b, c, d$ 和自己的 $a$,结束出牌阶段,且本回合你的手牌上限减 $1$。
所以答案为 $1100$。
对于样例 $3$ 而言:
因为凑不齐 $4$ 花色,所以这样达不到任何效果。
所以答案为 $0000$。
- 弃置对手的 $a$,弃置自己的 $b, c, d$, 然后回复自己 $1$ 点体力,也可以通过弃置对手的 $b$ 和 弃置自己的 $a, c, d$ 来达到同样的效果。
- 弃置对手的 $a, b, c$ 且 弃置自己的 $d$, 结束出牌阶段,且本回合你的手牌上限减 $1$。
- 弃置自己的 $a, b, c, d$,然后进行制衡,摸 $4$ 张牌。
所以答案为 $0111$。
对于样例 $2$ 而言:
- 可以弃置对手的 $a, b, c, d$ ,你的体力上限减 $1$。
- 可以弃置对手的 $b, c, d$ 和自己的 $a$,结束出牌阶段,且本回合你的手牌上限减 $1$。
所以答案为 $1100$。
对于样例 $3$ 而言:
因为凑不齐 $4$ 花色,所以这样达不到任何效果。
所以答案为 $0000$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?