༺ཌༀ 吃菠萝的狼 ༀད༻ 2024-07-30 16:27 采纳率: 63.2%
浏览 4
已结题

c++ T322000 棋盘

棋盘

题目描述

有一个 $n$ 行 $m$ 列的棋盘,棋盘的每个格子要么为黑色,要么为白色。两个格子相邻当且仅当这两个格子有公共点或公共边,例如,中间的格子会有 $8$ 个与它相邻的格子,而边上或角落上会分别有 $5$ 个或 $3$ 个与它相邻的格子。

给出在第 $0$ 个时刻棋盘的每个格子的颜色。接下来每个时刻,棋盘上的每个格子会同时发生变化,变化的规则如下:

  • 记第 $i-1$ 个时刻与这个格子相邻的所有格子中黑格的数量为 $x$,若 $x=3$,则这个格子在第 $i$ 个时刻为黑格。

  • 否则,若 $x=2$ 且在第 $i-1$ 个时刻这个格子为黑格,则这个格子在第 $i$ 个时刻为黑格。

  • 对于所有其它情况,这个格子在第 $i$ 个时刻为白格。

称某个时刻一个棋盘的状态为静止的,当且仅当它下一个时刻的每个格子的颜色与当前时刻的颜色相同。

你需要求出第 $k$ 个时刻棋盘上黑格的数量,并回答此时棋盘的状态是否是静止的。

输入格式

第一行三个整数 $n,m,k$,表示棋盘大小和时刻数。

接下来 $n$ 行,第 $i$ 行一个长为 $m$ 的字符串 $s_i$,其中第 $j$ 个字符 $s_{i,j}$ 若为 0 则代表第 $i$ 行第 $j$ 列的格子为白色,若为 1 则代表第 $i$ 行第 $j$ 列的格子为黑色。

输出格式

第一行输出一个字符串,若第 $k$ 个时刻棋盘的状态是静止的则输出 Yes,否则输出 No。请注意区分大小写。

第二行输出一个整数,表示第 $k$ 个时刻棋盘上黑格的数量。

样例 #1

样例输入 #1

6 7 3
0000100
0000100
0000100
1100000
1100000
0000111

样例输出 #1

No
7

样例 #2

样例输入 #2

5 6 2
000000
000000
011110
000000
000000

样例输出 #2

Yes
6

提示

样例 1 解释

第 $3$ 个时刻棋盘的状态为:

0000000
0001110
0000000
1100000
1100000

可以发现,右上角三个连续的 $1$ 会不断周期性变化,所以时刻 $3$ 的棋盘状态不是静止的。

样例 2 解释

可以发现,第 $3$ 个时刻的棋盘会和第 $2$ 个时刻的棋盘完全相同,所以第 $2$ 个时刻的棋盘是静止的。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 8月7日
    • 创建了问题 7月30日