AT_test001_g.アルファベット探し

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

高桥君被朋友出了一道这样的谜题。
首先,给定如图 11 所示的 77 行 77 列、共 4949 个格子的黑白图形 A,B,CA,B,C。


图 11:给定的 A,B,CA,B,C 形状

请你回答,在给定的图中,分别有多少个 A,B,CA,B,C 的形状。给定的图中所有的黑色格子都属于 A,B,CA,B,C 的一部分,且不会出现 A,B,CA,B,C 以外的其他图形。
此外,A,B,CA,B,C 的形状可以任意按正整数倍放大,放大后的形状也视为相同的形状。因此,图 2(a)2(a) 中的 33 个 AA 都要计为 AA。
另外,如图 2(b)2(b) 所示,9090 度的旋转也视为相同的形状。


图 2(a)2(a):22 倍、33 倍放大的 AA 的例子
图 2(b)2(b):旋转后的 AA 的例子

需要注意的是,A,B,CA,B,C 的形状是包含周围的白色格子的,判断是否为某个字母时要考虑周围的白格。如图 33 所示,构成 AA 的 77 行 77 列区域和构成 BB 的 77 行 77 列区域不会重叠,输入不会出现这样的情况。


图 33:不会作为输入出现的重叠图形的例子

请你回答,在给定的图中,A,B,CA,B,C 的形状分别各有多少个。
输入按如下格式从标准输入给出。

输入格式

输入共 H+1H+1 行。

  • 第 11 行包含两个整数 HH(表示给定图的行数,1≤H≤10001 \leq H \leq 1000)和 WW(表示给定图的列数,1≤W≤10001 \leq W \leq 1000),用空格隔开。
  • 接下来的 HH 行,每行包含 WW 个字符,表示图的状态 c(i,j)c_{(i,j)}(0≤i≤H−1,0≤j≤W−10 \leq i \leq H-1, 0 \leq j \leq W-1)。
    • 第 i+2i+2 行第 j+1j+1 个字符 c(i,j)c_{(i,j)} 为 . 或 o,表示第 i+1i+1 行第 j+1j+1 列的格子的状态:
      • .:该格子为白色。
      • o:该格子为黑色。
    • 图中不会出现 A,B,CA,B,C 以外的图形。
    • A,B,CA,B,C 的图形不会重叠。

输出格式

请按 A,B,CA,B,C 的顺序,用空格隔开,在一行中输出 AA 的个数、BB 的个数、CC 的个数。
同一行末尾输出换行符。

说明/提示

  • A,B,CA,B,C 的形状可以任意正整数倍放大,也可以以 9090 度为单位旋转。
  • 输入保证所有黑色格子都属于 A,B,CA,B,C 的一部分,且 A,B,CA,B,C 之间不会重叠。
  • 输入数据规模较大,请注意程序效率。

样例输入 11:

7 7
.......
...o...
..o.o..
.o...o.
.ooooo.
.o...o.
.......

样例输出 11:

1 0 0

说明:有 11 个 AA,没有 BB 和 CC。

样例输入 22:

7 14
..............
.oooo....oooo.
.o...o..o...o.
.oooo....oooo.
.o...o..o...o.
.oooo....oooo.
..............

样例输出 22:

0 2 0

说明:有 22 个 BB(一个正常方向,一个 180180 度旋转)。

样例输入 33:

14 42
..........................................
.................o...o........o.o.........
....oooooo.......ooooo.......o.o.o........
....oooooo.......o...o.......o.o.o........
..oo......oo......o.o........o.o.o........
..oo......oo.......o.........ooooo........
..oo......................................
..oo......................................
..oo......oo............ooo...............
..oo......oo...........o...o..............
....oooooo.............o...o..............
....oooooo.............o...o..............
........................o.o...............
..........................................

样例输出 33:

1 1 2

说明:有 11 个 180180 度旋转的 AA,11 个逆时针 9090 度旋转的 BB,11 个顺时针 9090 度旋转的 CC,11 个 22 倍放大的 CC。

样例输入 44:

6 8
........
........
........
........
........
........

样例输出 44:

0 0 0

说明:没有 A,B,CA,B,C。

样例输入 55:

40 40
........................................
..ooo.....o.................ooo.........
.o...o...o.o....oooo.......o.o....o.o...
.o......o...o..o...o......o..o...o...o..
.o...o..ooooo...oooo.......o.o...o...o..
..ooo...o...o..o...o........ooo..o...o..
................oooo..............ooo...
........................................
...........................o.o..........
..........................o.o.o.........
.........ooo..............o.o.o.........
........o...o.............o.o.o.........
..ooo...o...o..ooooo......ooooo.........
.o...o..o...o..o.o.o....................
.....o...o.o...o.o.o..............o.o...
.o...o.........o.o.o.............o.o.o..
..ooo...........o.o..............o.o.o..
.................................o.o.o..
.................................ooooo..
...........................oooo.........
..........................o...o.........
...........................oooo.........
.................ooo......o...o.........
................o...o......oooo.........
..oooooo........o.......................
..oooooo........o...o...................
....oo..oo.......ooo...............oooo.
....oo..oo........................o...o.
....oo....oo.......................oooo.
....oo....oo......................o...o.
....oo..oo.........................oooo.
....oo..oo..............................
..oooooo................................
..oooooo................ooo.............
.................ooo.....o.o......o.o...
................o...o....o..o....o.o.o..
................o........o.o.....o.o.o..
................o...o...ooo......o.o.o..
.................ooo.............ooooo..
........................................

样例输出 55:

4 7 6

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页