传统题 1000ms 256MiB

船只识别

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

在一个 R×CR \times C 的网格中,每个格子可能是水域(用 . 表示),也可能是船只的一部分(用 # 表示)。每艘船都是一个由若干个相邻 # 组成的矩形区域,且不同船只之间不能接触(即两艘船之间不能在上下或左右方向直接相邻)。 请判断当前网格中的船只放置是否合法,并统计船只的数量。如果放置合法,输出船只数量;如果有任意两艘船相邻,输出 Bad placement.

输入格式

第一行包含两个整数 RRCC1R,C10001 \le R, C \le 1000),表示网格的行数和列数。

接下来的 RR 行每行 CC 个字符,仅包含 # 或 .,表示整张网格的内容。

输出格式

一行一个字符串,如果船的位置放得正确(即棋盘上只存在相互之间不能接触的矩形,如果两个 # 号上下相邻或左右相邻却分属两艘不同的船只,则称这两艘船相互接触了)。就输出 There are S ships.,S 表示船只的数量。否则输出 Bad placement.

样例输入1

6 8
.....#.#
##.....#
##.....#
.......#
#......#
#..#...#

样例输出1

There are 5 ships.

样例输入2

6 8
##...#.#
###....#
##.....#
.......#
#......#
#..#...#

样例输出2

Bad placement.

CSP-J/S 公开训练(第三场)

未参加
状态
已结束
规则
IOI
题目
6
开始于
2025-7-15 20:00
结束于
2025-7-25 0:00
持续时间
220 小时
主持人
参赛人数
16