QOJ.ac

QOJ

Time Limit: 9 s Memory Limit: 1024 MB Total points: 100

#1653. 代号

Statistics

这个游戏的规则可能与官方游戏略有不同。

Karen 和她的朋友们正在参加一场高风险的棋盘游戏锦标赛,玩的是流行的游戏《代号》(Codenames)。《代号》是一款有两个对立阵营的游戏:红队和蓝队。Karen 是红队的成员。

游戏在一个 $5 \times 5$ 的棋盘上进行,25 个格子中的每一个都被(秘密地)分配了四种类型之一。棋盘上每种类型的格子数量是固定的: 9 个红色格子 (r); 8 个蓝色格子 (b); 7 个中立格子 (n); 1 个刺客格子 (x)。

格子的真实类型只有每队的一名玩家(称为“情报员”)知道。其他玩家最初只看到一个充满覆盖格子的 $5 \times 5$ 网格。随着游戏的进行,格子会逐渐揭开。每个被覆盖的格子都包含一个物体的名称(这与本题无关)。

幸运的是,Karen 是她队伍的情报员,所以她知道棋盘的真实配置。她的职责是帮助队友发现红色格子,同时让他们远离所有其他格子(尤其是刺客格子)。她可以通过发布一个提示来做到这一点,提示包含: 一个有效的单词 $w$(来自一个包含 $n$ 个单词的词典); 一个正整数 $g$(队友应该进行的猜测次数)。

她的队友随后会根据提示尝试猜测尽可能多的红色格子。他们从第一次猜测开始,揭开其中一个格子。如果揭开的格子是红色的,他们可以继续猜测;否则,他们的回合结束,另一队开始他们的回合。如果一队揭开了所有对应颜色的格子,或者另一队揭开了刺客格子,该队就赢得了游戏。

为了说明这一点,让我们考虑下面(对应于样例的)游戏状态。左图显示了 Karen 眼中的棋盘。中间的图片显示了她队友眼中的棋盘。请注意,有些格子对 Karen 的队友来说是覆盖的,只有 Karen 知道它们的真实类型。右图的含义将在下文中解释。

最初,Karen 的目标是给出与某些红色格子中描述的物体名称相关的提示,以便队友知道只揭开那些格子。然而,她很快意识到游戏进展并不顺利,蓝队可能会在下一回合击败他们。值得庆幸的是,她和她的朋友们专门为这些情况设计了一个秘密的“紧急作弊方案”。

他们首先按照行优先顺序(如上图右侧所示)为 25 个格子中的每一个分配一个字母。然后,当 Karen 公布一个单词 $w$ 和一个数字 $g$ 时,她的队友会执行以下操作:

  1. 按顺序遍历单词 $w$ 的每个字母 $w_i$;
  2. 如果 $w_i$ 没有分配给任何格子,或者 $w_i$ 对应的格子已经被揭开,则什么都不做;否则,猜测 $w_i$ 对应的格子。

队友重复此过程,直到他们揭开了所有正确的格子、犯了错误(揭开了非红色格子)、已经进行了所有 $g$ 次猜测,或者单词 $w$ 的所有字母都被揭开。

在上面的例子中,Karen 可以向她的队伍宣布“actor 2”。她的队伍会首先猜测格子 $(1, 1)$(对应字母 a),跳过字母 c(因为格子 $(1, 3)$ 已经被揭开),然后猜测格子 $(4, 5)$,从而赢得游戏(因为其他红色格子已经被揭开)。

Karen 想利用这个方案在一回合内赢得游戏。她知道所有 $n$ 个有效单词的词典,以及游戏的当前状态。找出她应该向她的队伍宣布的提示,以帮助他们获得胜利!

你需要解决 $q$ 个不同的场景。词典对于所有场景都是相同的,但棋盘配置可能不同。

输入格式

第一行包含一个正整数 $n$ ($1 \le n \le 100\,000$),表示有效单词的数量。 接下来的 $n$ 行,每行包含一个长度至少为 1 且最多为 30 个字母的字符串,代表词典中的单词。

接下来的一行包含一个正整数 $q$ ($1 \le q \le 100\,000$),表示场景的数量。然后是 $q$ 个场景,每个场景描述一个棋盘。每个棋盘由一个 $5 \times 5$ 的字符网格表示,字符来自集合 $\{r, b, n, x\}$(红/蓝/中立/刺客)。如果字母是大写的,则意味着该格子已经被揭开(否则该格子被覆盖)。至少有一个蓝色和一个红色的覆盖格子,且刺客格子总是被覆盖的;换句话说,状态总是表示游戏尚未结束。

输出格式

对于每个场景,输出由单词 $w$ 和数字 $g$ ($1 \le g \le 9$) 组成的提示,使 Karen 的队伍获胜。如果对于特定场景无法宣布这样的提示,则打印单个单词“IMPOSSIBLE”(不含引号)来代替提示。如果存在多个解,则接受任何一个。不同场景的答案应打印在单独的行上。

样例

输入 1

3
actor
cheat
zeta
1
rBBnR
NRnbB
nRRnR
NRxBr
nBRbB

输出 1

actor 2

说明

注意,Karen 不能宣布例如 cheat 3,因为她的队伍最终会揭开位置 $(2, 3)$ 的格子并结束他们的回合。其他一些正确的解可以是 zeta 2 或 actor 4。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#313EditorialOpen题解jiangly2025-12-14 07:02:53View

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.