QOJ.ac

QOJ

時間限制: 3 s 記憶體限制: 1024 MB 總分: 100

#429. 北欧露营

统计

在北欧国家的山区露营时,拥有可靠的水源可能关乎生死。传统上,北欧露营者总是将帐篷搭建在水源上方,这样无需走出帐篷即可随时取水。北欧人的另一个奇特传统是他们的帐篷:他们只使用方形帐篷。

北欧山区的营地可能非常崎岖且多岩石。Jon 目前正在搭建一个新的营地,并已经勘测了营地内所有可用的地点。将营地建模为一个 $N \times M$ 的网格,Jon 给了你一份所有崎岖且不可用的单元格列表。Jon 现在想找出在他营地上能搭建的最大的帐篷,该帐篷只能使用平坦、可用的单元格,并且必须覆盖给定的水源。

对于每一个水源,你能否帮助 Jon 确定能覆盖该特定水源的最大的方形帐篷的面积?

图 1:第二个样例测试用例,以及覆盖位于 $(3, 2)$ 的水源的最大的方形帐篷的区域。这也恰好是覆盖位于 $(5, 4)$ 的水源的最大的方形帐篷。

输入格式

输入的第一行包含两个空格分隔的整数 $N$ 和 $M$ ($1 \le N, M$)。接下来是 $N$ 行,每行包含 $M$ 个字符,表示网格。每个字符要么是 ‘#’,要么是 ‘.’,其中 ‘.’ 表示营地的平坦区域,‘#’ 表示岩石覆盖的不可用区域。

接下来是一行,包含一个整数 $Q$,表示 Jon 考虑的水源数量。接下来的 $Q$ 行,每行包含两个整数 $x$ 和 $y$ ($1 \le x \le N, 1 \le y \le M$),给出水源的位置 $(x, y)$(水源位于网格的第 $x$ 行,第 $y$ 列)。

输出格式

对于 Jon 考虑的每个水源,按照输入中的顺序,输出能搭建在平坦、可用单元格上且覆盖该特定水源的最大的方形帐篷的地面面积。

注意,帐篷的搭建方式不能使其部分覆盖一个单元格。它要么完全覆盖该单元格,要么与该单元格的交集为空。

子任务

子任务 分数 数据范围
1 20 $N, M \le 50, Q \le 1000$
2 25 $N, M \le 800, K \le 10^5, Q \le 10^5$
3 20 $N \le 10, M \le 2000, Q \le 500$
4 35 $N, M \le 2000, K \le 10^5, Q \le 10^5$

样例

样例输入 1

3 3
#..
...
.##
2
1 3
2 1

样例输出 1

4
1

样例输入 2

5 5
#...#
..#..
.....
#...#
#....
5
3 2
2 5
5 4
4 5
1 3

样例输出 2

9
4
9
0
1

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.