QOJ.ac

QOJ

时间限制: 2 s 内存限制: 256 MB 总分: 100

#360. 修炼

统计

在 21XX 年,IOI 星球的居民计划移民到一个新发现的行星。

这个新行星上有一块田地,是一个 $R$ 行 $C$ 列的矩形网格。列平行于南北方向,行平行于东西方向。从北往南数第 $i$ 行、从西往东数第 $j$ 列的单元格称为单元格 $(i, j)$。田地的西北角是单元格 $(1, 1)$,东南角是单元格 $(R, C)$。每年,IOI 星球的居民都会选择吹向田地的风向。风向可以是东、西、南、北四个方向之一。

为了在新行星上进行农业生产,他们将在新行星的田地里种植“JOI 草”。在移民的第一年春天,田地里有 $N$ 个单元格长有 JOI 草。

JOI 草的范围会随风扩张。每年夏天,JOI 草的种子会被居民选择的风吹向对应的方向。种子会向风向移动一个单元格并落地。如果种子落在一个没有 JOI 草的单元格上,那么在第二年春天,该单元格就会长出 JOI 草。一旦一个单元格长出了 JOI 草,它在未来将一直保持有 JOI 草。

我们希望计算出,如果我们适当地调整风向,直到田地里所有单元格都长满 JOI 草所需的最少年份。

输入格式

从标准输入读取以下数据。

  • 第一行包含两个空格分隔的整数 $R, C$。这表示田地是一个 $R$ 行 $C$ 列的矩形网格。
  • 第二行包含一个整数 $N$,表示移民第一年春天田地里长有 JOI 草的单元格数量。
  • 接下来的 $N$ 行中,第 $i$ 行($1 \le i \le N$)包含两个空格分隔的整数 $S_i, E_i$。这表示单元格 $(S_i, E_i)$ 在移民第一年春天长有 JOI 草。

输出格式

向标准输出写入一行。输出内容为在适当地调整风向的情况下,直到田地里所有单元格都长满 JOI 草所需的最少年份。

数据范围

所有输入数据满足以下条件:

  • $1 \le N \le 300$
  • $1 \le R \le 1\,000\,000\,000$
  • $1 \le C \le 1\,000\,000\,000$
  • $1 \le S_i \le R$ ($1 \le i \le N$)
  • $1 \le E_i \le C$ ($1 \le i \le N$)
  • 在移民第一年春天,田地里存在没有 JOI 草的单元格。
  • $(S_i, E_i) \neq (S_j, E_j)$ ($1 \le i < j \le N$)

子任务

共有 6 个子任务。各子任务的分值和附加限制如下:

  • 子任务 1 [5 分]:$R \le 4, C \le 4$
  • 子任务 2 [10 分]:$R \le 40, C \le 40$
  • 子任务 3 [15 分]:$R \le 40$
  • 子任务 4 [30 分]:$N \le 25$
  • 子任务 5 [20 分]:$N \le 100$
  • 子任务 6 [20 分]:无附加限制。

样例

输入格式 1

3 4
3
1 2
1 4
2 3

输出格式 1

3

说明 1

在样例输入 1 中,移民第一年春天以下单元格长有 JOI 草:

新行星上的田地;标有‘0’的单元格在移民第一年春天长有 JOI 草。

在此样例输入中,如果我们选择前 3 年的风向分别为西、南、南,那么 3 年后的春天所有单元格都将长满 JOI 草。下表描述了每个单元格在哪个春天长出 JOI 草。这是最少年份。

1 0 1 0
2 1 0 2
3 2 2 3

输入格式 2

4 4
4
1 1
1 4
4 1
4 4

输出格式 2

4

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

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.