QOJ.ac

QOJ

Límite de tiempo: 9 s Límite de memoria: 2048 MB Puntuación total: 100

#14565. 公平与平方

Estadísticas

Felix 为他的生日派对点了一份巨大的矩形比萨。他只是快速去了一趟厨房拿盘子和餐具,当他回来时,宾客们已经开始自便,吃掉了比萨的各个部分。这份比萨原本由 $h \times w$ 个大小相同的正方形小块组成,现在已经缺失了其中的一些小块:

图 F.1:第一个样例的图示,将其划分为边长为 2 的正方形。

为了确保剩余比萨的分配能够更加有序地进行,Felix 想要将剩余的比萨划分为更大的正方形区域。Felix 只能沿着网格线进行切割,并且不能重新排列比萨的任何部分。每个正方形都应该具有相同的边长,且该边长应尽可能大,以减少所需的盘子数量。

求出这个最大可能的边长。注意,答案总是存在的,因为比萨总是可以被划分为 $1 \times 1$ 的正方形。

输入格式

输入包含:

  • 第一行包含两个整数 $h$ 和 $w$($1 \le h, w \le 2500$),表示网格的高度和宽度。
  • 接下来的 $h$ 行,每行包含一个长度为 $w$ 的字符串,由 '#'(表示仍然存在的比萨块)和 '.'(表示已经被拿走的比萨块)组成。

输入保证至少包含一个 '#'。

输出格式

输出一个整数,表示最大可能的边长,使得剩余的比萨可以被划分为该边长的正方形。

样例

样例输入 1

4 7
####...
####.##
.######
.####..

样例输出 1

2

样例输入 2

3 5
#####
#####
###..

样例输出 2

1

样例输入 3

3 5
.##..
#####
##.##

样例输出 3

1

样例输入 4

5 13
....###......
....###..###.
.######..###.
.###.....###.
.###.........

样例输出 4

3

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.