QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 1024 MB 満点: 100

#8897. 血清学

統計

你是一只蚂蚁,但不是普通的蚂蚁——你是一只痴迷于奶酪学的蚂蚁!

你已经在厨房里发现了一块新的奶酪,并希望派遣尽可能多的部下(minions)去探索它。将这块奶酪想象成一个 $N$ 行 $M$ 列的表格,行从上到下编号为 $1$ 到 $N$,列从左到右编号为 $1$ 到 $M$。有些格子包含空洞,而另一些包含奶酪。我们将第 $r$ 行第 $s$ 列的格子记为 $(r, s)$。左上角和右下角的格子一定包含奶酪。

设部下的数量为 $K$。你的部下将从左上角的格子出发,在右下角的格子结束。他们只能向下或向右移动。此外,他们的路径不能“交叉”,这意味着我们可以给他们分配 $1$ 到 $K$ 的标签,使得不存在这样的格子:标签较小的部下从该格子向右离开,而标签较大的部下从该格子向下离开。

此外,你希望这些路径在某种意义上是“不同”的,即对于任意两个部下,都存在一个包含空洞的格子 $(r, s)$,使得其中一个部下在某个时刻处于第 $s$ 列且行号小于 $r$,而另一个部下在某个时刻(不一定同时)处于第 $s$ 列且行号大于 $r$。通俗地说,每一对部下都是从不同的侧面接近某个空洞的。

输出满足给定条件时 $K$ 的最大值。

一些不满足条件的路径示例:

(a) 无效的路径选择 - 它们相交 (b) 无效的路径选择 - 它们从同一侧接近空洞

输入格式

第一行包含正整数 $N, M$。

接下来的 $N$ 行包含表格行的描述。第 $i$ 行包含 $M$ 个字符,其中 . 表示奶酪,# 表示包含空洞的格子。

输出格式

输出 $K$ 的最大可能值,占一行。

子任务

在所有子任务中,$2 \le N, M \le 2000$。

子任务 分值 数据范围
1 15 所有空洞都在同一行。
2 18 $N, M \le 10$
3 16 $N, M \le 50$,第一行、最后一行、第一列或最后一列没有空洞。
4 18 $N, M \le 50$
5 16 $N, M \le 2000$,第一行、最后一行、第一列或最后一列没有空洞。
6 17 无附加限制。

样例

输入 1

5 5
.....
.#...
.....
...#.
.....

输出 1

3

输入 2

5 5
....#
....#
.....
.....
#....

输出 2

1

输入 3

3 2
.#
#.
..

输出 3

0

说明

第一和第二个样例的路径解释:

(a) 第一个样例的路径示例 (b) 第二个样例的路径示例

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.