#P11215. 【MX-J8-T3】水星湖

【MX-J8-T3】水星湖

题目背景

原题链接:https://oier.team/problems/83

题目描述

有一个 n×mn\times m 的矩形网格。用数对 (x,y)(x, y) 表示第 xx 行、第 yy 列的位置。

网格内有 qq 片湖泊(qq 可能为 00),第 ii 片湖泊覆盖了左上角为 (ai,1,bi,1)(a_{i, 1}, b_{i, 1})、右下角为 (ai,2,bi,2)(a_{i, 2}, b_{i, 2}) 的矩形区域,这片区域里的所有位置都被称为湖泊。如果一个位置不属于任何一片湖泊,它就是陆地。湖泊两两不会重叠,但可能相邻。

小 Y 会进行 rr 次种树。第 ii 次,他在第 tit_i 秒向 (xi,yi)(x_i, y_i) 里种下一棵树,保证该位置不为湖泊,且要么没有种下或生长过树,要么曾经种下或生长的树已经死亡。保证种树是按照时间顺序进行的,即 t1,t2,,trt_1, t_2, \dots, t_r 单调不降。

每一秒,对于每个位置 (x,y)(x, y),若它同时满足如下所有条件,则会在 (x,y)(x, y) 处生长出一棵树:

  • 它是一块无树存活的陆地;
  • 它与一块湖泊相邻
  • 在前一秒与一棵存活的树相邻

(上述所说的相邻是在四连通意义下的,即位置 (x1,y1)(x_1, y_1)(x2,y2)(x_2, y_2) 相邻当且仅当 $\lvert x_1 - x_2 \rvert + \lvert y_1 - y_2 \rvert = 1$。)

如果一棵树在存活大于 k\bm k后(以其被种下或生长出来时开始计算),与其相邻的所有位置均为无树存活的陆地,则它会死亡。

小 Y 想要知道:经过充分多时间后(也即,经过足够多的时间,使得网格内不会有新的位置长出树,也不会有旧的树死去的状态下),网格内最终会有多少棵树。

输入格式

第一行,五个整数 n,m,q,r,kn, m, q, r, k

接下来 qq 行,每行四个正整数 ai,1,bi,1,ai,2,bi,2a_{i, 1}, b_{i, 1}, a_{i, 2}, b_{i, 2},描述第 ii 片湖泊的位置。保证湖泊两两不会重叠。

接下来 rr 行,每行三个正整数 ti,xi,yit_i, x_i, y_i,分别表示第 ii 棵树被种下的秒数和行列位置。保证 t1,t2,,trt_1, t_2, \dots, t_r 单调不降。

输出格式

仅一行一个整数,表示经过充分多时间后,网格内最终会有多少棵树。

5 6 2 1 1
2 1 3 3
3 5 5 6
1 1 5
10
3 3 0 3 1
1 3 1
2 1 1
3 2 1

2

提示

【样例解释 #1】

如图所示,为经过充分多时间后网格中的情况。

网格内不会有新的位置长出树,也不会有旧的树死去,所以经过充分多时间后,网格内有 1010 棵树。

【样例解释 #2】

在这一组数据中,所有位置都是陆地,没有湖泊。

11 秒时,第一棵树在 (3,1)(3, 1) 被种下。

22 秒时,第二棵树在 (1,1)(1, 1) 被种下。紧接着,第一棵树已存活 >1> 1 秒,且与其相邻的所有位置均为没有存活的树的陆地,因此死亡。

33 秒时,第三棵树在 (2,1)(2, 1) 被种下。紧接着,第二棵树已存活 >1> 1 秒,而此时第三棵树与其相邻,因此不死亡。

随后,网格内不会有新的位置长出树,也不会有旧的树死去。所以经过充分多时间后,网格内有 22 棵树。

【样例 #3】

见附件中的 lake/lake3.inlake/lake3.ans

该组样例满足测试点 474 \sim 7 的约束条件。

【样例 #4】

见附件中的 lake/lake4.inlake/lake4.ans

该组样例满足测试点 8108 \sim 10 的约束条件。

【样例 #5】

见附件中的 lake/lake5.inlake/lake5.ans

该组样例满足测试点 131513 \sim 15 的约束条件。

【样例 #6】

见附件中的 lake/lake6.inlake/lake6.ans

该组样例满足测试点 162016 \sim 20 的约束条件。

【数据范围】

本题共 2020 个测试点,每个 55 分。

测试点编号 n,mn,m\le qq\le rr\le ti,kt_i,k\le
131\sim3 1010
474\sim7 5050 100100 10001000
8108\sim 10 30003000 00 10510^5 10910^9
111211\sim12 10510^5 11
131513\sim15 10001000 10510^5 1212
162016\sim20 30003000 10910^9

对于全部数据,保证:

  • 1n,m30001 \leq n, m \leq 3000
  • 0q1050 \leq q \leq 10^5
  • 1ai,1ai,2n1 \leq a_{i, 1} \le a_{i, 2} \leq n1bi,1bi,2m1 \leq b_{i, 1} \le b_{i, 2} \leq m
  • 湖泊两两不会重叠;
  • 1r1051 \leq r \leq 10^5
  • 1t1t2tr1091 \leq t_1 \leq t_2 \leq \dots \leq t_r \leq 10^9
  • 1xin1 \leq x_i \leq n1yim1 \leq y_i \leq m
  • 位置 (xi,yi)(x_i, y_i) 不是湖泊且无树存活;
  • 1k1091 \leq k \leq 10^9