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 翻译