【MX-J8-T3】水星湖
题目背景
原题链接:<https://oier.team/problems/83>。
题目描述
有一个 $n\times m$ 的矩形网格。用数对 $(x, y)$ 表示第 $x$ 行、第 $y$ 列的位置。
网格内有 $q$ 片湖泊($q$ 可能为 $0$),第 $i$ 片湖泊覆盖了左上角为 $(a_{i, 1}, b_{i, 1})$、右下角为 $(a_{i, 2}, b_{i, 2})$ 的矩形区域,这片区域里的所有位置都被称为湖泊。如果一个位置不属于任何一片湖泊,它就是陆地。湖泊两两不会重叠,但可能相邻。
小 Y 会进行 $r$ 次种树。第 $i$ 次,他在第 $t_i$ 秒向 $(x_i, y_i)$ 里种下一棵树,保证该位置不为湖泊,且要么没有种下或生长过树,要么曾经种下或生长的树已经死亡。保证种树是按照时间顺序进行的,即 $t_1, t_2, \dots, t_r$ 单调不降。
每一秒,对于每个位置 $(x, y)$,若它同时满足如下所有条件,则会在 $(x, y)$ 处生长出一棵树:
- 它是一块无树存活的陆地;
- 它与一块湖泊**相邻**;
- 它**在前一秒**与一棵存活的树**相邻**。
(上述所说的**相邻**是在四连通意义下的,即位置 $(x_1, y_1)$ 和 $(x_2, y_2)$ 相邻当且仅当 $\lvert x_1 - x_2 \rvert + \lvert y_1 - y_2 \rvert = 1$。)
如果一棵树在存活**大于 $\bm k$ 秒**后(以其被种下或生长出来时开始计算),与其相邻的所有位置**均为无树存活的陆地**,则它会死亡。
小 Y 想要知道:经过充分多时间后(也即,经过足够多的时间,使得网格内不会有新的位置长出树,也不会有旧的树死去的状态下),网格内最终会有多少棵树。
输入输出格式
输入格式
第一行,五个整数 $n, m, q, r, k$。
接下来 $q$ 行,每行四个正整数 $a_{i, 1}, b_{i, 1}, a_{i, 2}, b_{i, 2}$,描述第 $i$ 片湖泊的位置。保证湖泊两两不会重叠。
接下来 $r$ 行,每行三个正整数 $t_i, x_i, y_i$,分别表示第 $i$ 棵树被种下的秒数和行列位置。保证 $t_1, t_2, \dots, t_r$ 单调不降。
输出格式
仅一行一个整数,表示经过充分多时间后,网格内最终会有多少棵树。
输入输出样例
输入样例 #1
5 6 2 1 1
2 1 3 3
3 5 5 6
1 1 5
输出样例 #1
10
输入样例 #2
3 3 0 3 1
1 3 1
2 1 1
3 2 1
输出样例 #2
2
说明
**【样例解释 \#1】**
如图所示,为经过充分多时间后网格中的情况。
![](https://cdn.luogu.com.cn/upload/image_hosting/kdlmoo7p.png)
网格内不会有新的位置长出树,也不会有旧的树死去,所以经过充分多时间后,网格内有 $10$ 棵树。
**【样例解释 \#2】**
在这一组数据中,所有位置都是陆地,没有湖泊。
第 $1$ 秒时,第一棵树在 $(3, 1)$ 被种下。
第 $2$ 秒时,第二棵树在 $(1, 1)$ 被种下。紧接着,第一棵树已存活 $> 1$ 秒,且与其相邻的所有位置均为没有存活的树的陆地,因此死亡。
第 $3$ 秒时,第三棵树在 $(2, 1)$ 被种下。紧接着,第二棵树已存活 $> 1$ 秒,而此时第三棵树与其相邻,因此不死亡。
随后,网格内不会有新的位置长出树,也不会有旧的树死去。所以经过充分多时间后,网格内有 $2$ 棵树。
**【样例 \#3】**
见附件中的 `lake/lake3.in` 与 `lake/lake3.ans`。
该组样例满足测试点 $4 \sim 7$ 的约束条件。
**【样例 \#4】**
见附件中的 `lake/lake4.in` 与 `lake/lake4.ans`。
该组样例满足测试点 $8 \sim 10$ 的约束条件。
**【样例 \#5】**
见附件中的 `lake/lake5.in` 与 `lake/lake5.ans`。
该组样例满足测试点 $13 \sim 15$ 的约束条件。
**【样例 \#6】**
见附件中的 `lake/lake6.in` 与 `lake/lake6.ans`。
该组样例满足测试点 $16 \sim 20$ 的约束条件。
**【数据范围】**
本题共 $20$ 个测试点,每个 $5$ 分。
|测试点编号|$n,m\le$|$q\le$|$r\le$|$t_i,k\le$|
| :-----------: | :-------------:|:-----------: |:-----------: |:-----------: |
|$1\sim3$|$10$|$10$|$10$|$10$|
|$4\sim7$|$50$|$100$|$1000$|$1000$|
|$8\sim 10$|$3000$|$0$|$10^5$|$10^9$|
|$11\sim12$|$3000$|$10^5$|$1$|$10^9$|
|$13\sim15$|$1000$|$10^5$|$10^5$|$12$|
|$16\sim20$|$3000$|$10^5$|$10^5$|$10^9$|
对于全部数据,保证:
- $1 \leq n, m \leq 3000$;
- $0 \leq q \leq 10^5$;
- $1 \leq a_{i, 1} \le a_{i, 2} \leq n$,$1 \leq b_{i, 1} \le b_{i, 2} \leq m$;
- 湖泊两两不会重叠;
- $1 \leq r \leq 10^5$;
- $1 \leq t_1 \leq t_2 \leq \dots \leq t_r \leq 10^9$;
- $1 \leq x_i \leq n$,$1 \leq y_i \leq m$;
- 位置 $(x_i, y_i)$ 不是湖泊且无树存活;
- $1 \leq k \leq 10^9$。