loj#P3193. 「ROI 2019 Day2」机器人高尔夫球赛

「ROI 2019 Day2」机器人高尔夫球赛

题目描述

译自 ROI 2019 Day2 T3. Робогольф

高尔夫球赛的场地是一个长方形,长方形被划分为 nn 行,每行 mm 个单元格,行依次编为 1n1\ldots n 号,列依次编为 1m1\ldots m 号。可以用数对 (r,c)(r,c) 来指明场上的任意一个单元格,r,cr,c 分别表示该单元格所在的行、列的编号。有 kk 个单元格有球洞。

两人(机器人)交替挥杆。如果球在 (r,c)(r,c),人可以把球打到 (r,c+1)(r,c+1)(r+1,c)(r+1,c)。如果球到了第 nn 行或第 mm 列,人可以将其打到场外。只要球被打到了有球洞的单元格,就视为进洞。如果球离开了场地或进洞了,比赛结束。

每个洞会有一个分值 viv_i,可能是负数。比赛得分为球进的洞的分值,如果被打出场外则分值为 0。先手希望得分越小越好,后手希望得分越大越好。

g(r,c)g(r,c) 表示一场在 (r,c)(r,c) 发球的比赛。g(r,c)g(r,c) 的期望结果等于这场比赛的最小可能得分。特别的,如果 (r,c)(r,c) 有球洞,则 g(r,c)g(r,c) 的期望结果等于该场比赛期望结果取决于先手,与后手无关(?)。

试求所有 g(r,c)g(r,c) 的期望结果之和。答案对 998 244 353998\ 244\ 353 取模。

输入格式

n,m,kn,m,k
接下来 kk 行,每行三个整数 ri,ci,vir_i,c_i,v_i,表示 (ri,ci)(r_i,c_i) 上有一个球洞,其分值为 viv_i

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

数据范围与提示

1n,m1091 ⩽ n, m ⩽ 10^9; 1kmin(nm,105)1 ⩽ k ⩽ \min(n · m, 10^5); 109vi109−10^9 ⩽ v_i ⩽ 10^9

子任务 # 分值 n,mn,m kk 附加条件
1 20 n,m1000n,m⩽1000 $$
2 14 n5,m109n ⩽ 5, m ⩽ 10^9
3 14$$ n,m105n,m⩽10^5 k=n+m1k = n + m − 1 i,\forall i, ri=nr_i=nci=mc_i=m
4 10 i,\forall i, rin1000r_i⩾ n − 1 000cin1000c_i⩾ n − 1 000
5 6 n,m105n,m⩽10^5 i,\forall i, vi=1v_i=1
6 6$$
7 10 n,m105n,m⩽10^5
8 10$$ k1000k ⩽ 1 000
9 10