CSPSMK08B. 涟漪(ripple)

提交3 通过2
通过率66.7%
文件IO启用
输入文件ripple.in
输出文件ripple.out
时间限制2000ms
内存限制512MiB
    ID: 14552 传统题 文件IO 输入文件:ripple.in 输出文件:ripple.out 2000ms 512MiB 尝试: 3 已通过: 2 难度: 提高+/省选- 上传者: 标签>C++CSP-S考前模拟

题目描述

题目描述

众所周知,向水池里扔东西会产生涟漪。

现在把水池看成一个 nn 行 mm 列的网格,每个位置初始高度均为 00,水面上共有 kk 个涟漪,涟漪以四连通的方式向外扩散,每个涟漪有一个初始强度 cc ,衰减速度 dd 和中心 (x,y)(x,y),涟漪对水面高度造成的影响是正负交替的,若不考虑水池边界,一个 c=8,d=3c=8,d=3 涟漪对水面高度造成的影响如下表:

0  0  0  0  0  0  0
0  0  0  2  0  0  0
0  0  2 -5  2  0  0
0  2 -5  8 -5  2  0
0  0  2 -5  2  0  0
0  0  0  2  0  0  0
0  0  0  0  0  0  0

求出最终的水面高度。

输入格式

第一行三个正整数 nn,mm,kk。

接下来 kk 行,每行 44​ 个整数,分别表示涟漪的横纵坐标 (xi,yi)(x_i,y_i),初始强度 cic_i 和衰减速度 did_i。

输出格式

由于本题输出量过大,所以采用特殊的输出方式:

设 hi,jh_{i,j} 表示 (i,j)(i,j) 处的水面高度,

输出一行 nn 个整数,第 ii 个整数为 ∑j=1mhi,j233j mod 998244353\sum\limits_{j=1}^{m}h_{i,j}233^{j}\bmod998244353。

输入样例 #1

6 5 2
2 2 5 2
5 3 4 1

输出样例 #1

12486703 900480213 85168626 937842371 48230619 937788082

本组为本站补充样例,不是原卷附件样例。

输入样例 #2

1 1 1
1 1 2 5

输出样例 #2

466

本组为本站补充样例,不是原卷附件样例。

输入样例 #3

3 4 3
2 4 28 5
2 2 3 9
2 4 26 8

输出样例 #3

301819317 914407007 301819317

说明提示

【样例 11 提示】

第一个涟漪造成的影响为:

 1 -3  1  0  0
-3  5 -3  1  0
 1 -3  1  0  0
 0  1  0  0  0
 0  0  0  0  0
 0  0  0  0  0

第二个涟漪造成的影响为:

 0  0  0  0  0
 0  0 -1  0  0
 0 -1  2 -1  0
-1  2 -3  2 -1
 2 -3  4 -3  2
-1  2 -3  2 -1

最终水面高度为:

 1 -3  1  0  0
-3  5 -4  1  0
 1 -4  3 -1  0
-1  3 -3  2 -1
 2 -3  4 -3  2
-1  2 -3  2 -1

数据范围

子任务编号 n m k 子任务分值
11 1≤n≤3001\le n \le 300 1≤m≤3001\le m \le 300 1≤k≤3001\le k \le 300 1010
22 n=1n=1 1≤m≤30001\le m \le 3000 1≤k≤5×1051\le k \le 5 \times 10^5 20
33 1≤n≤30001\le n \le 3000 1≤k≤30001\le k \le 3000
44 1≤k≤5×1051\le k \le 5 \times 10^5 50

对于所有数据,有 1≤x≤n1 \le x \le n,1≤y≤m1 \le y \le m,1≤c,d≤1091\le c,d \le 10^9。