Logo HelloWorld信息学奥赛题库

少儿编程

时间限制:2 s 空间限制:256 MB

#3259. 「JOISC 2017 Day 1」开荒者

统计

题目描述

题目译自 JOISC 2017 Day1 T1「開拓 / Cultivation

开荒者要让一片长方形的平原长满草。这个长方形可视为 $R$ 行 $C$ 列的正方形网格,底平行于南北方向,高平行于东西方向。我们用 $(1,1)$ 表示网格的西北角,$(R,C)$ 表示网格的东南角。开始时有且只有 $N$ 个网格内长有野草,其余网格内既没有草也没有草籽。开荒者们可以控制这片平原上的风往东、西、南、北四个方向中的一个方向吹。

每年夏天,草会制造草籽。开荒者们会选定当年夏天的风向。所有草籽会被风扬起,并根据风向移动一格。来年春天,有草籽降落的网格就会有草萌发。假设草不会枯萎。
我们假设不会有草籽从平原外飘进平原内,飘出网格的草籽不会发芽。试求:让这片平原长满草最少需要几年。

输入格式

第一行有两个整数 $R, C$,用空格分隔。
第二行有一个整数 $N$。
在接下来的 $N$ 行中,第 $i$ 行 $(1\le i\le N)$ 有两个整数 $S_i, E_i$,表示 $(S_i, E_i)$ 长有野草。

输出格式

一个整数,表示在理想方案下,这片平原长满草最少需要的年数。

样例 1

input

3 4
3
1 2
1 4
2 3

output

3

初始状态($0$ 表示有草):

  0   0
   0  
    

一种最佳方案是三年的风向分别为西、南、南。表格中展示了每个格子在哪一年开始长草。

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

样例 2

input

4 4
4
1 1
1 4
4 1
4 4

output

4

数据范围与提示

对于所有数据,$1\le N\le 300, 1\le R, C\le 10^9, 1\le S_i \le R, 1\le E_i\le C, (S_i, E_i)≠(S_j, E_j)(1\le i<j\le N)$。

Subtask # 分值 $R,C$ $N$
1 5 $R,C\le 4$ $N\le 16$
2 10 $R,C\le 40$ -
3 15 $R\le 40$ -
4 30 - $N\le 25$
5 20 - $N\le 100$
6 20 - -