#P16808. [NWRRC 2024]Game of Annihilation
[NWRRC 2024]Game of Annihilation
题目描述
两名玩家在一条向右无限延伸、被划分成格子的纸带上进行游戏。格子从左到右编号为 。除格子 只与格子 相邻外,格子 与格子 、 相邻。
纸带上有有限枚红色棋子和蓝色棋子。红色棋子属于第一名玩家,蓝色棋子属于第二名玩家。每个格子中要么放有若干枚红色棋子,要么放有若干枚蓝色棋子,要么为空,不会同时存在两种颜色。
两名玩家轮流行动。在自己的回合中,玩家可以:
- 跳过本回合;或
- 选择自己的一枚棋子,将其移动到相邻格子。
若目标格子中没有对手的棋子,本回合立即结束。若目标格子中至少有一枚对手棋子,则该格子中双方各移除一枚棋子。于是回合结束后,任何格子中仍不会同时出现两种颜色的棋子。

若双方棋子都被全部移除,游戏以平局结束。若恰好一名玩家失去全部棋子,则该玩家失败,另一名玩家获胜。若进行了 个回合后游戏仍未结束,也强制判为平局。
给定纸带的初始状态。假设双方都采用最优策略,请判断最终胜负,并为第一名玩家给出任意一个最优首步。
输入格式
每个输入包含多组测试数据。
第一行包含一个整数 ,表示测试数据组数。
对于每组测试数据:
- 第一行包含一个整数 ,表示初始时至少含有一枚棋子的格子数量;
- 接下来 行,第 行包含两个整数 和一个字符 :
- 表示该非空格子的坐标;
- 表示其中棋子的数量;
- 表示棋子颜色。
输入按坐标从左到右给出,并且初始状态中两种颜色的棋子都至少有一枚。
数据范围
所有测试数据的 之和不超过 。
输出格式
对于每组测试数据:
- 若第一名玩家(红棋)必胜,输出
First x d; - 若第二名玩家(蓝棋)必胜,输出
Second; - 若游戏结果为平局,输出
Draw x d。
在第一种和第三种情况下,x d 必须描述第一名玩家的任意一个获胜首步或保平首步:执行该步后,即使第二名玩家采用最优策略,第一名玩家仍能够获胜或至少取得平局。
其中:
- 是被移动红棋所在格子的坐标;
- 表示移动方向;
-表示从 移到 ,此时必须有 ;+表示从 移到 ;- 若建议第一名玩家跳过回合,则用
0 0代替x d。
输出中的英文字母不区分大小写。
样例
10
2
1 1 R
2 1 B
2
1 1 B
2 1 R
2
1 2 B
4 1 R
4
1 1 B
2 1 R
4 3 B
6 1 R
2
1 2 B
3 1 R
2
1 2 B
2 1 R
2
1 1 R
2 2 B
2
1 2 R
3 1 B
3
1 1 R
2 1 R
4 1 B
2
1 2 R
2 1 B
Draw 0 0
Draw 2 -
Draw 4 -
Draw 2 -
Draw 0 0
Draw 2 +
Second
Draw 0 0
Draw 2 -
First 1 +
样例说明
在最后一组测试中,除 1 + 外唯一可选的行动是 0 0,即跳过回合。但跳过只能取得平局,而第一名玩家存在获胜行动,因此输出 0 0 不会被接受。