CF341D Iahub and Xors
题目描述
Iahub 不喜欢背景故事,所以他会直接告诉你题目要求。
给你一个 $n$ 行 $n$ 列的矩阵 $a$。最初矩阵中所有元素均为 $0$。行和列都是从 $1$ 开始编号,即行编号为 $1,2,\ldots,n$,列编号为 $1,2,\ldots,n$。我们用 $a_{i,j}$ 表示第 $i$ 行第 $j$ 列的元素。
我们称一个子矩阵 $(x_0, y_0, x_1, y_1)$ 包含满足以下不等式的所有元素 $a_{i,j}$:$x_0 \leq i \leq x_1$,$y_0 \leq j \leq y_1$。
请编写程序实现以下两种操作:
1. Query($x_0, y_0, x_1, y_1$):输出子矩阵 $(x_0, y_0, x_1, y_1)$ 中所有元素的异或和。
2. Update($x_0, y_0, x_1, y_1, v$):将子矩阵 $(x_0, y_0, x_1, y_1)$ 中的每个元素与 $v$ 进行异或。
输入格式
第一行包含两个整数 $n$($1 \leq n \leq 1000$)和 $m$($1 \leq m \leq 10^{5}$),$n$ 表示矩阵的规模,$m$ 表示操作数。接下来的 $m$ 行,每行包含五个或六个整数,取决于操作类型。
如果第 $i$ 个操作为查询操作,则该行的第一个数为 $1$,接着是四个整数 $x_0, y_0, x_1, y_1$。
如果第 $i$ 个操作为更新操作,则该行的第一个数为 $2$,接着是五个整数 $x_0, y_0, x_1, y_1, v$。
保证对于每次更新操作,都有 $0 \leq v < 2^{62}$。
保证对于每次操作,都有 $1 \leq x_0 \leq x_1 \leq n$,$1 \leq y_0 \leq y_1 \leq n$。
输出格式
对于每次查询操作,输出一行结果。
说明/提示
在前三个操作之后,矩阵状态如下:
```
1 1 2
1 1 2
3 3 3
```
第四个操作要求计算 $1 \operatorname{xor} 2 \operatorname{xor} 3 \operatorname{xor} 3 = 3$。
第五个操作要求计算 $1 \operatorname{xor} 3 = 2$。
由 ChatGPT 5 翻译