#P15610. [ICPC 2021 Jakarta R] Cell Game
[ICPC 2021 Jakarta R] Cell Game
说明
由于新冠疫情日益严重,他们的城市再次进入封锁状态,两兄弟阿尔多(Aldo)和邦丹(Bondan)被困在家中。他们已经完成了学期学习,正值假期,但如果不能出门,又能享受什么样的假期呢?然而,无聊确实能激发创造力。他们在无聊的假期中发明了一个新游戏。
游戏在一个 行 列的棋盘上进行,每个格子中有零个或一个棋子。每个棋子被涂上 26 种颜色之一,用字符 'a' 到 'z' 表示。棋盘上至少有一个棋子。
两名对手轮流进行游戏。轮到某位玩家时,他选择一个棋子,并将其移动到相邻(即北、南、西、东方向)的一个格子中,目标格子不一定为空。一次移动被称为 好移动 当且仅当玩家将一个颜色为 的棋子移动到一个已经包含相同颜色 的棋子的格子中。游戏的目标是尽可能多地做出好移动。拥有严格更多好移动的玩家获胜。如果双方好移动数量相等,则为平局,无人获胜。
这个游戏可以无限进行下去。然而,阿尔多和邦丹同意总共进行 次移动,由阿尔多先手。
邦丹觉得这种游戏很无聊,所以他决定懒散地玩。每当轮到邦丹时,他会选择阿尔多上一次刚刚移动过的同一个棋子,并将其随机均匀地移动到一个相邻的格子中。
尽管如此,邦丹不喜欢输。在游戏开始前,他可能需要通过改变棋盘大小或移动棋子的初始位置来调整棋盘,使得即使邦丹懒散地玩,阿尔多获胜的概率也恰好为零。具体来说,棋盘可以从 扩展到 ,其中 且 ,并且每个棋子的初始位置可以移动到另一个格子,同时确保每个格子最多包含一个棋子。不能丢弃任何棋子,也不能向棋盘添加新棋子。
你的任务是找到一个新的棋盘设置,使得在总共进行 次移动的情况下,尽管邦丹懒散地玩,阿尔多(先手)获胜的概率为零。新棋盘设置应具有最小的总单元格数。如果有多个解,你只需输出其中任意一个。
输入格式
输入第一行包含两个整数 和 (),分别表示初始棋盘的行数和列数。保证棋盘上至少有 2 个格子。接下来 行,每行包含 个字符,表示初始棋盘状态。字符 '.' 表示空单元格,而小写字母('a'-'z')表示具有该颜色的棋子。保证棋盘上至少有一个棋子。
输出格式
输出第一行包含两个整数 和 ,分别表示新棋盘的行数和列数。接下来 行,每行包含 个字符,表示新棋盘状态。字符 '.' 表示空单元格,而小写字母('a'-'z')表示具有该颜色的棋子。新棋盘应保证在总共进行 次移动的情况下,尽管邦丹懒散地玩,阿尔多(先手)获胜的概率为零。新棋盘应具有最小的总单元格数,并且应包含与初始棋盘相同的棋子集合。
2 3
ab.
c.d
2 3
ab.
c.d
2 3
aa.
c.d
2 3
a.a
c.d
1 2
oo
1 3
o.o
提示
样例 #1 解释
没有两个相同颜色的棋子,因此任何玩家都无法做出好移动。阿尔多无法赢得此游戏。
翻译由 DeepSeek 完成
京公网安备 11011102002149号