QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 256 MB مجموع النقاط: 100

#11089. 外观分析

الإحصائيات

你在萨格勒布的电气工程与计算学院“C”楼拍了一张照片,照片中大小相等的窗户整齐地排列在行和列中。有些窗户被涂上了奇特的图案,你正试图分析这张照片并确定不同图案的数量。

我们将照片表示为一个有 $r$ 行 $c$ 列的字符矩形网格。每个窗户都是一个矩形区域,且所有窗户的尺寸相同。窗户中的每个单元格要么是透明的(用“.”字符表示),要么是涂色的(用“+”字符表示)。如果一个窗户可以通过旋转 90 度的倍数并放置在另一个窗户上从而完全重合,则认为这两个窗户的图案相同。在比较图案时,不允许将窗户翻转。

窗户在行和列中规则排列,每个窗户周围都有一行砖块单元格(用“#”字符表示)。更准确地说,在两行相邻的窗户之间,以及第一行窗户之前和最后一行窗户之后,都有一行“#”字符。同样,在两列相邻的窗户之间,以及第一列窗户之前和最后一列窗户之后,都有一列“#”字符。窗户的行数和列数是任意的。窗户的尺寸也是任意的。然而,一个窗户至少包含一个单元格,并且照片中所有的窗户尺寸相同。

请找出照片中不同窗户图案的数量。

输入格式

第一行包含两个整数 $r$ 和 $c$ ($3 \le r, c \le 111$),表示照片的行数和列数。接下来的 $r$ 行,每行包含一个由 $c$ 个字符组成的字符串,表示照片的一行。

输出格式

输出一个整数,表示照片中不同窗户图案的数量。

样例

样例输入 1

11 16
################
#....#++++#+...#
#....++..+#+...#
#....#..++.+#..#
#....#....#++++#
################
#....#.+..#++++#
#..++#..++#++.+#
#+...#....++.+#
#+...#..++#....#
################

样例输出 1

4

样例输入 2

9 21
#####################
#...+#####++++#..+.#
#.+..#..#.+..#..+.#
#.+..#..#.+..#..+.#
#####################
#.+..#..#.+..#..+.#
#.+..#..#.+..#..+.#
#...+#####++++#..+.#
#####################

样例输出 2

4

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.