luogu#P11086. [ROI 2019 Day 2] 机器人高尔夫

[ROI 2019 Day 2] 机器人高尔夫

题目背景

翻译自 ROI 2019 D2T3

在“机器人奥林匹克运动会”中,有一个“机器人高尔夫比赛”。比赛场地是一个由 n×mn \times m 个单位方块组成的矩形。场地的行用数字 11nn 编号,列用数字 11mm 编号。每个单位方块由两个正整数 rrcc 表示,分别代表它所在的行和列的编号。

两个机器人轮流在场地上移动一个特殊的“高尔夫球”,场地的某些方块上可能有洞。如果“高尔夫球”位于方块 (r,c)(r, c) 上,执行当前操作的机器人可以将其移动到方块 (r+1,c)(r + 1, c) 或方块 (r,c+1)(r, c + 1)。如果“高尔夫球”位于最后一行或最后一列,机器人可以将其移动到场地的边界外。游戏会在以下两种情况下结束:“高尔夫球”超出了场地的边界,或者“高尔夫球”落到一个洞里。

每个洞对应一个整数 viv_i,表示它的价值。游戏的结果等于游戏结束时“高尔夫球”所在洞的价值,如果“高尔夫球”超出了场地的边界,则结果为 00。先手机器人的目标是最小化游戏结果,而后手机器人的目标是最大化游戏结果。

题目描述

假设 g(r,c)g(r, c) 表示当“高尔夫球”初始位于方块 (r,c)(r, c) 时,先手机器人不论对手怎么行动都可以达到的最小游戏结果。由于比赛开始前不知道初始方块,机器人开发者想要计算出所有格子对应的 g(r,c)g(r, c) 的总和,即 i=1nj=1mg(i,j)\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}g(i,j)

输入格式

第一行包含三个整数 n,m,kn,m,k,分别表示行数、列数和洞的个数。

接下来的 kk 行,每行包含三个整数 ri,ci,vir_i,c_i,v_i,分别表示洞所在的行、列编号和洞的价值。没有两个洞会位于同一个方块上。

输出格式

输出一个整数,表示 $\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}g(i,j)\bmod998244353$。注意:输出的结果应该在 00998244352998244352 之间,而不是在 998244352-998244352998244352998244352 之间。

3 3 3
2 3 -2
3 1 3
1 2 1
998244352
2 4 3
1 2 2
2 4 -3
2 1 1
998244348

提示

样例解释:

第一个样例中,所有方格的 g(r,c)g(r,c) 如下(灰色的格子有洞):

总结果求和为:1+12+022+3+0+0=11 + 1 - 2 + 0 - 2 - 2 + 3 + 0 + 0 = -1。答案为 $(-1) \bmod 998 244 353 = (-1 + 998 244 353) = 998 144 352$。

第二个样例中,所有方格的 g(r,c)g(r,c) 如下:

总结果求和为:1+2+03+1+033=51 + 2 + 0 - 3 + 1 + 0 - 3 - 3 = -5。答案为 (5)mod998244353=998244348(-5) \bmod 998 244 353 = 998 244 348

数据范围:

子任务 分值 n,m,kn,m,k 其它特殊性质
11 2020 n,m1000n,m\le1000
22 1414 n5,m109n\le5,m\le10^9
33 n,m100000,k=n+m1n,m\le100000,k=n+m-1 A
44 1010 B
55 66 n,m100000n,m\le100000 C
66
77 1010 n,m100000n,m\le100000
88 k1000k\le1000
99

特殊性质 A:对于任意 iiri=nr_i=nci=mc_i=m

特殊性质 B:对于任意 iirin1000r_i\ge n-1000cim1000c_i\ge m-1000

特殊性质 C:对于任意 iivi=1v_i=1

对于 100%100\% 的数据,$1\le n,m\le10^9,1\le k\le\min(n\times m,10^5),1\le r_i\le n,1\le c_i\le m,|v_i|\le10^9$。