QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 256 MB 満点: 100

#4586. 细胞游戏

統計

两兄弟 Aldo 和 Bondan 因 COVID-19 疫情导致城市再次封锁,被困在家中。他们已经结束了学期,正在度假,但如果不能出门,又能享受什么样的假期呢?然而,无聊确实激发了创造力。他们在无聊的假期中创造了一个新游戏。

该游戏在一个 $R$ 行 $C$ 列的棋盘上进行,每个格子包含零个或一个棋子。每个棋子被涂上 26 种颜色之一,用 'a' 到 'z' 的字符表示。棋盘上至少有一个棋子。

两名对手轮流进行游戏。在每一轮中,玩家选择一个棋子并将其移动到相邻的格子(即北、南、西或东方向),该格子不一定是空的。当且仅当玩家将颜色为 $x$ 的棋子移动到已经包含颜色为 $x$ 的棋子的格子时,该移动被称为“好棋”(good move)。游戏的目标是尽可能多地获得“好棋”。获得“好棋”次数严格更多的玩家赢得游戏。如果两名玩家获得的“好棋”次数相同,则为平局,无人获胜。

这个游戏可以无限期地进行下去。然而,Aldo 和 Bondan 同意总共进行 $10^{100}$ 次移动,由 Aldo 先手。

Bondan 认为这种游戏很无聊,所以他决定懒散地玩。每当轮到 Bondan 时,他都会选择 Aldo 在上一回合刚刚移动过的同一个棋子,并将其随机移动到相邻的格子。

尽管如此,Bondan 并不喜欢输。在游戏开始前,他可能需要通过改变棋盘大小或移动棋子的初始位置来调整棋盘,使得即使 Bondan 懒散地玩,Aldo 赢得游戏的概率也恰好为零。具体来说,棋盘可以从 $R \times C$ 扩展为 $R' \times C'$,其中 $R' \geq R$ 且 $C' \geq C$,并且每个棋子的初始位置可以移动到另一个格子,同时确保每个格子最多包含一个棋子。不能丢弃任何棋子,也不能向棋盘添加新棋子。

你的任务是找到一种新的棋盘设置,使得即使 Bondan 懒散地玩,Aldo(先手)赢得总共 $10^{100}$ 次移动的游戏的概率为零。新的棋盘设置应具有最小的单元格总数。如果存在多个解决方案,你只需要输出其中任意一个。

输入格式

输入的第一行包含两个整数 $R$ 和 $C$ ($1 \leq R, C \leq 1000$),分别表示棋盘的初始行数和列数。保证棋盘上至少有 2 个格子。接下来的 $R$ 行,每行包含 $C$ 个字符,表示初始棋盘状态。字符 '.' 表示空单元格,小写字母('a'-'z')表示具有该颜色的棋子。保证棋盘上至少有 1 个棋子。

输出格式

输出的第一行包含两个整数 $R'$ 和 $C'$,分别表示新棋盘的行数和列数。接下来的 $R'$ 行,每行包含 $C'$ 个字符,表示新棋盘状态。字符 '.' 表示空单元格,小写字母('a'-'z')表示具有该颜色的棋子。新棋盘应保证即使 Bondan 懒散地玩,Aldo(先手)赢得总共 $10^{100}$ 次移动的游戏的概率为零。它应具有最小的单元格总数,并拥有与初始棋盘相同的棋子集合。

样例

输入 1

2 3
ab.
c.d

输出 1

2 3
ab.
c.d

说明 1

没有两个棋子颜色相同,因此任何玩家都不可能获得“好棋”。Aldo 无法赢得此游戏。

输入 2

2 3
aa.
c.d

输出 2

2 3
a.a
c.d

输入 3

1 2
oo

输出 3

1 3
o.o

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.