#9821. 异或游戏

    ID: 9821 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>树状数组二维树状数组矩形异或区间异或

异或游戏

题目描述

Iahub\text{Iahub} 不喜欢背景故事,所以他会告诉你这个问题究竟在问什么。

给定一个 nnnn 列的矩阵。最初,矩阵中所有的值都是零。行和列都是从 11 开始编号的,也就是行从 1,2,,n1,2,\ldots,n 编号,列从 1,2,,n1,2,\ldots,n 编号。我们用 iijj 列的元素表示为 ai,ja_{i, j}

我们将称满足两个不等式条件的元素 ai,ja_{i, j} 的子矩阵为 (x0,y0,x1,y1)(x_0,y_0,x_1,y_1),这两个不等式条件分别是: x0ix1x_0 \le i \le x_1y0jy1y_0 \le j \le y_1

编写一个程序执行以下两种操作:

11Query(x0,y0,x1,y1)Query(x_0,y_0,x_1,y_1):输出子矩阵 (x0,y0,x1,y1)(x_0,y_0,x_1,y_1)元素的异或和。 22Update(x0,y0,x1,y1,v)Update(x_0,y_0,x_1,y_1,v):子矩阵 (x0,y0,x1,y1)(x_0,y_0,x_1,y_1) 中的每个元素都与值 vv 进行异或操作。

输入格式

第一行包含两个整数: nnmm 。数字 mm 表示需要执行的操作数。接下来的每一行包含五个或六个整数,取决于操作类型。

如果第 ii 次操作是一个查询,第 ii 行的第一个数字将为 11。它将后跟四个整数 x0,y0,x1,y1x_0,y_0,x_1,y_1

如果第 ii 次操作是一个更新,第 ii 行的第一个数字将为 22。它将后跟五个整数 x0,y0,x1,y1,vx_0,y_0,x_1,y_1,v

保证每次更新操作都满足以下不等式条件: 0v2620 \le v \le 2^{62}

保证每次操作都满足以下不等式条件: 1x0x1n,1y0y1n1 \le x_0 \le x_1 \le n,1 \le y_0 \le y_1 \le n

输出格式

对于每次查询操作,输出结果。

3 5
2 1 1 2 2 1
2 1 3 2 3 2
2 3 1 3 3 3
1 2 2 3 3
1 2 2 3 2
3
2

样例分析

经过前 33 次操作后,矩阵如下所示:

1 1 2
1 1 2
3 3 3

第四次操作要求我们计算 1 xor 2 xor 3 xor 3 = 31 \ xor \ 2 \ xor \ 3 \ xor \ 3 \ = \ 3

第五次操作要求我们计算 1 xor 3 = 21 \ xor \ 3 \ = \ 2

数据范围与提示

对于 100%100\% 的数据:1n10001 \le n \le 10001m1051 \le m \le 10^5