SP20972 CONOR - Alia and Cryptography

题目描述

Alia 是全球著名的密码学家。最近,她开发出了一种全新的互联网密码加密方法。不同于传统的“密钥”加密,现在她打算使用一个名为“密钥矩阵”的秘密来进行加密。 这个“密钥矩阵”是一个 m × n 的整数组成的矩阵。此外,还有四个坐标 x1, y1, x2, y2。可以通过对在 (x1, y1) 为左上角、(x2, y2) 为右下角的矩形区域中的所有整数进行按位异或(^)操作,来从“密钥矩阵”中提取出“密钥”。(注意:矩阵是从索引 0 开始的。)此外,Alia 还开发了新的工具来定期更新“密钥”以防止被“攻击者”破解。因此,她会不时更新某些元素的值。你有一个黑客朋友,他已经成功获取了“密钥矩阵”。现在,他只需要用这个矩阵来提取密钥。因为这项工作相当复杂,他需要你的帮助。请协助你的朋友从“密钥矩阵”中提取出秘密“密钥”。 简单来说,你需要对矩阵执行以下两种操作: - `0 x1 y1 x2 y2`:计算从 (x1, y1) 到 (x2, y2) 的矩形区域内所有整数的按位异或结果,得到“密钥”。 - `1 x1 y1 k`:将坐标 (x1, y1) 位置上的值更新为 k。

输入格式

第一行包含两个整数 m 和 n,用空格分隔,表示矩阵的行数和列数。接下来是一个 m 行 n 列的“密钥矩阵”。随后的一行输入一个整数 q,表示查询的数量。接下来的 q 行中,每行代表一个已定义格式的查询。

输出格式

对于每个查询,输出你所提取出的“密钥”。

说明/提示

- \(1 \leq m, n < 600\) - \(1 \leq q \leq 20,000\) - \(0 \leq x1, x2 \leq m - 1\) - \(0 \leq y1, y2 \leq n - 1\) - \(0 \leq A_{ij}, k \leq 10^8\) ## 示例 ### 输入 ``` 2 2 1 2 3 4 2 1 0 0 2 0 0 0 1 1 ``` ### 输出 ``` 7 ``` ### 解释 第一个查询更新 (0, 0) 位置的值为 2。此时,“密钥矩阵”变为: ``` 2 2 3 4 ``` 对于第二个查询,计算整个矩阵所有值的按位异或结果,即 $2 \oplus 2 \oplus 3 \oplus 4 = 7$。因此,密钥为 7。 **本翻译由 AI 自动生成**