7214. 滑动窗口异或 (Sliding Window Xor)
时间限制:1000 MS 内存限制:512 MB
题目描述
## 题目描述 给定一个含有 $n$ 个整数的数组。你的任务是计算从左到右每个大小为 $k$ 的窗口内元素的按位异或和(XOR sum)。 在本题中,输入数据量较大,因此使用数据生成器在程序内生成。 ## 输入格式 第一行包含两个整数 $n$ 和 $k$,分别表示数组元素数量和窗口大小。 第二行包含四个整数 $x, a, b$ 和 $c$,表示输入生成器的参数。数组的元素生成方式如下: * $x_1 = x$ * $x_i = (a \cdot x_{i-1} + b) \bmod c$(对于 $i = 2, 3, \dots, n$) ## 输出格式 输出一个整数,表示所有窗口异或和的异或和(XOR sum)。 ## 输入输出样例 ### 输入 #1 ``` 8 5 3 7 1 11 ``` ### 输出 #1 ``` 0 ``` ## 样例解释 生成的输入数组为 `[3, 0, 1, 8, 2, 4, 7, 6]`。 所有大小为 $5$ 的窗口分别为 `[3, 0, 1, 8, 2]`、`[0, 1, 8, 2, 4]`、`[1, 8, 2, 4, 7]` 和 `[8, 2, 4, 7, 6]`。 它们的异或和分别为 $8, 15, 8, 15$。 因此,最终答案为 $8 \oplus 15 \oplus 8 \oplus 15 = 0$。 ## 说明/提示 ### 数据规模与约定 * $1 \le k \le n \le 10^7$ * $0 \le x, a, b \le 10^9$ * $1 \le c \le 10^9$