1706: [NewOJ Contest 1] 窗户

内存限制:256 MB 时间限制:1 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:196 通过:112

题目描述

现在有一张关于宿舍窗户的照片,请你判断有多少种不同款式的窗户,为了简化问题,作如下定义:
  1. 输入图片表示为一个n行m列的字符矩阵
  2. 窗户形状为一个矩形,输入保证在同一张图片中,所有的窗户有相同的尺寸
  3.  输入图片中“#”表示墙壁,“.”和“+”表示窗户的不同花纹
  4. 输入保证图片的最外层为一层“#”,两个相邻的窗户之间也只有一层“#”
  5. 在同一张图片中,每一行窗户数量是一样的,每一列窗户数量也是一样的
  6. 一个窗户至少包含一个单元格
  7. 不同的输入图片,图片本身的尺寸、窗户的尺寸都是任意的
款式一样:代表窗户的字符矩阵完全一致,或者旋转90、180、270度后完全一致,则表示这两个窗户是一样的款式。
请你根据输入图片,判断有多少个不同款式的窗户。

输入格式

输入第一行包含两个正整数n,m(1≤n,m≤120)
接下来n行,每行m个字符表示输入图片尺寸。

输出格式

输出一个数字表示答案。

输入样例 复制

样例1:
11 16
################
#....#++++#+...#
#....#++.+#+...#
#....#.++.#++.+#
#....#....#++++#
################
#....#.+..#++++#
#..++#.+..#++.+#
#+...#....#.++.#
#+...#..++#....#
################

样例2:
9 21
#####################
#...+#++++#+...#..+.#
#..+.#.++.#.+..#..+.#
#.+..#....#..+.#..+.#
#####################
#.+..#....#..+.#.+..#
#..+.#.++.#.+..#.+..#
#...+#++++#+...#.+..#
#####################

输出样例 复制

样例1:
4

样例2:
4