#P17346. [ECNA 2025] Chess Solitaire
[ECNA 2025] Chess Solitaire
题目描述
国际象棋接龙是一种供单人游玩的国际象棋变体。你大概已经从名字猜到了这一点,但它的确切规则如下:给定一个棋盘,棋盘上有至少两个棋子且没有兵,找出一系列吃子操作,使棋盘上最终只剩一个棋子。
每次移动的棋子都必须吃掉另一个棋子。因此,如果棋盘最初有 个棋子,解法就恰好包含 步。图 1 展示了一个谜题及其解法,对应样例一。
各类棋子的吃子走法与普通国际象棋相同,图 2 和图 3 给出了提示。
本题给定一个国际象棋接龙谜题,请输出一系列操作将其解出。
:::align{center}


:::
输入格式
第一行包含两个整数 ,其中 表示棋盘的行数和列数, 表示棋子数量。
接下来的 行均为 loc 的形式。 为 N、B、R、Q 或 K,依次表示马、象、车、后和王;loc 是长度为 的字符串,表示棋子位置。第一个字符为大写字母,表示行;第二个字符为数字,表示列,如图所示。所有位置都合法,且任意两个棋子的位置不同。
输出格式
输出 行,表示解题所需的 步操作。每行为 : loc1 -> loc2 的形式,表示棋子 从位置 loc1 移动到位置 loc2 并吃掉该处棋子。
如果有多个解,先选择第一步起点 loc1 字典序最小的解;仍有并列时,选择第一步终点 loc2 字典序最小的解;如果仍然并列,就对第二步应用同样规则,依此类推。
如果谜题无解,输出 No solution。
5 5
N E3
Q C1
R C2
B C4
R A3
Q: C1 -> A3
R: C2 -> C4
N: E3 -> C4
N: C4 -> A3
4 4
Q D4
Q B1
Q C2
K A3
No solution