[R29E]矩形求和
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
时空限制
3S/512M
题目描述
给定一个大小为 的矩阵 ,其行、列下标的范围均为 。矩阵中每个元素 的值,都由一个给定的、大小为 的代价矩阵 所决定( 的下标同样从 开始)。
具体地,将非负整数 和 分别用二进制表示为: 和 其中 。定义函数:
则 的值由下式给出:
你需要处理 个操作:
- 类型 1 (修改):给定 ,把 的值修改为 。
- 类型 2 (查询):给定 ,计算 $(\sum_{i=r_1}^{r_2} \sum_{j=c_1}^{c_2} M_{i,j} )\bmod 998244353$。
格式
输入格式
第一行包含一个整数 。
接下来 行,每行包含 个整数。其中第 行的 个整数分别表示 。
接下来一行包含一个整数 ,表示操作的总次数。
接下来 行,每行描述一个操作,格式如下:
- 若该行的第一个整数为 ,则其后跟有三个整数 ,表示一次修改操作,你需要将 修改为 。
- 若该行的第一个整数为 ,则其后跟有四个整数 ,表示一次查询操作。
输出格式
对于每个查询操作,输出一行,包含一个整数,表示所求的矩形区域和对 取模后的结果。
样例
样例输入 #1
2
1 2 3 4
5 6 7 8
3
2 0 0 3 3
1 0 1 10
2 0 0 1 1
样例输出 #1
144
38
样例输出 #1
修改前 矩阵为:
$$\begin{pmatrix} 6 & 7 & 7 & 8 \\ 8 & 9 & 9 & 10 \\ 8 & 9 & 9 & 10 \\ 10 & 11 & 11 & 12 \end{pmatrix} $$- 第一个查询即整个矩阵的和,故输出 。
第二个操作后, 矩阵变为:
$$ \begin{pmatrix} 6 & 15 & 7 & 16 \\ 8 & 9 & 9 & 10 \\ 8 & 17 & 9 & 18 \\ 10 & 11 & 11 & 12 \end{pmatrix} $$- 最后一个查询操作查询的范围是左上角 的子矩阵,答案为 。
数据规模
对于 的数据,,。
对于 的数据,。
对于 的数据,,,,, $0 \leq r_1 \leq r_2 < 2^n, 0 \leq c_1 \leq c_2 < 2^n$。
代码源挑战赛 Round 29
- Status
- Done
- Rule
- DMY
- Start at
- 2025-9-12 20:00
- End at
- 2025-9-12 21:30
- Duration
- 1.5 hour(s)
- Host
- Partic.
- 523