QOJ.ac

QOJ

حد الوقت: 2.0 s حد الذاكرة: 1024 MB مجموع النقاط: 100 قابلة للهجوم ✓

#17849. 村庄建设

الإحصائيات

光芒诞生后,人们不仅将其视为照亮周围的事物,更将其视为一种可以渗透到他们生活和空间中的力量。

他们梦想着建立一个光芒能普照每个人的新村庄。为了实现这一愿景,他们仔细挑选了一块光芒可以渗透到每个角落的土地。

追溯他们选择的土地,重新连接那些散落的碎片。


在这座古老的岛屿上,有一块呈 $N$ 行 $M$ 列网格状的土地。从上往下数第 $r$ 行、从左往右数第 $c$ 列的单元格记为 $(r, c)$。

光芒无法穿过坚硬的土壤——相反,它会轻轻地渗透过柔软且透明的地面。为了建设村庄,人们将土地区分为了光芒可以穿过的土地和可以建造房屋的土地。

他们决定在满足以下条件的土地区域内建设村庄:

  • 该区域必须是一个正方形。
  • 沿主对角线的单元格必须允许光芒通过。(主对角线是指从正方形左上角到右下角的对角线。)
  • 主对角线以外的所有其他单元格必须适合建造房屋。

以下是 $K = 1, 2, 3$ 时合法的 $K \times K$ 区域示例。在下图中,黑色单元格是允许光芒通过的单元格,白色单元格是适合建造房屋的单元格。

在下方的示例中,左侧所示的 $4 \times 4$ 区域是建设村庄的合法区域。然而,右侧所示的区域是不合法的,因为并非所有非对角线单元格都适合建造房屋。

你的任务是对于每种尺寸,求出可以建设村庄的正方形区域的数量。

输入格式

第一行包含两个空格分隔的整数 $N$ 和 $M$,表示土地的大小。

接下来的 $N$ 行,每行包含 $M$ 个字符 $A_{i1}, A_{i2}, \dots, A_{iM}$,表示单元格 $(i, 1), (i, 2), \dots, (i, M)$ 的土地类型。如果 $A_{ij}$ 为 'X',表示该单元格允许光芒通过;如果 $A_{ij}$ 为 '.',表示该单元格适合建造房屋。

  • $2 \le N \le 2000$
  • $2 \le M \le 2000$
  • $A_{ij}$ 为 'X''.'。($1 \le i \le N, 1 \le j \le M$)

输出格式

对于从 $1$ 到 $\min(N, M)$ 的每个整数 $K$,依次输出可以建设村庄的合法 $K \times K$ 正方形区域的数量,每行一个。

子任务

  • 子任务 1(4 分):$A_{ij} = \text{'X'} \ (1 \le i \le N, 1 \le j \le M)$
  • 子任务 2(11 分):$N = 2$
  • 子任务 3(27 分):$N \le 80, M \le 80$
  • 子任务 4(25 分):$N \le 400, M \le 400$
  • 子任务 5(33 分):无附加限制。

样例

输入样例 1

4 4
X..X
.X..
..X.
X..X

输出样例 1

6
3
2
0

输入样例 2

2 6
XXX..X
.X.X..

输出样例 2

6
1

输入样例 3

4 5
XXXXX
XXXXX
XXXXX
XXXXX

输出样例 3

20
0
0
0

输入样例 4

9 9
X.....X..
.X....X..
..X...X.X
...X...X.
X...X...X
.X...X...
..XXXXX..
...X...X.
....X...X

输出样例 4

23
12
6
3
0
0
0
0
0

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.