#P10865. [HBCPC2024] Genshin Impact Startup Forbidden III

[HBCPC2024] Genshin Impact Startup Forbidden III

题目描述

Blue-edged Shot 被 LeavingZ 禁止玩《原神》。然而,今天 LeavingZ 前往了华中科技大学的网络科学与工程学院,参加2024年中国湖北省国际大学生程序设计竞赛,并收获了金牌。

《原神》中的一个活动多多炸弹大冒险已经开始了。这是一个单人游戏,每局游戏都涉及一个池塘。池塘可以被划分为一个 n×mn×m 的网格,其中第 ii 行第 jj 列的单元格表示为 (i,j)(i,j)。在这些单元格中,有 kk 个单元格包含鱼,你将扮演火花骑士克莱,她用炸药来捕鱼。

如果克莱在 (a,b)(a,b) 位置投放炸弹,那么所有满足xa+yb1|x-a|+|y-b|\le 1的单元格 (x,y)(x,y) 都将被爆炸覆盖。对于每一个被爆炸覆盖的单元格,克莱都会从其中捕到一条鱼。克莱可以在任何位置投放炸弹。问题是,为了捕到所有的鱼,至少需要多少枚“蹦蹦炸弹”?

输入格式

第一行包含三个整数 n,m,kn,m,k (1n,m103,1k101 \le n,m \le 10^3, 1 \le k \le 10),分别表示网格的大小(行数和列数)以及包含鱼的单元格数量。

接下来的 kk 行,每行包含三个整数 xi,yi,aix_i,y_i,a_i (1xin,1yim,1ai31\le x_i \le n, 1 \le y_i \le m, 1 \le a_i \le 3),表示在网格的 (xi,yix_i, y_i) 单元格中有 aia_i 条鱼。

输入保证所有的 (xi,yi)(x_i, y_i) 单元格坐标都是唯一的。

输出格式

输出一个整数,表示所需的最少炸弹数量。在这个问题中,你需要计算并输出一个整数,该整数代表为了捕获所有鱼所需投放的最少“蹦蹦炸弹”数量。

样例 #1

样例输入 #1

5 5 3
1 1 2
2 2 1
5 5 2

样例输出 #1

4

输入输出样例 #1

输入 #1

5 5 3
1 1 2
2 2 1
5 5 2

输出 #1

4

说明/提示

一种可能的方法是在 (1,2)(1,2) 位置投放两枚炸弹,再在 (5,5)(5,5) 位置投放另外两枚炸弹。

可以证明没有比这个答案更小的解。