uoj#P681. 【UR #22】月球列车

【UR #22】月球列车

伏特找到了跳蚤国顶尖的工程师们,请他们设计月球列车的引擎。

工程师们设计出了一款非常特殊的引擎——月千引擎。这个引擎由 $n$ 个部件组成,每个部件有一个功耗参数 $a_i$。

当引擎以 $x$ 的速度行进时,引擎的总功耗为 $\oplus_{i=1}^n (a_i+x)$,即 $(a_1 + x) \oplus (a_2 + x) \oplus \cdots \oplus (a_n + x)$,其中 $\oplus$ 表示异或。

现在伏特设置了 $m$ 种不同的速度,你需要快速算出引擎的功耗。由于伏特的暴脾气,你有可能需要得到每一个速度后立马输出答案。

输入格式

第一行三个整数 $n, m, t$,表示引擎部件数,询问数量以及加密参数。

第二行 $n$ 个整数,第 $i$ 个整数 $a_i$ 表示部件的功耗参数。

接下来 $m$ 行,第 $i$ 行输入 $v'_i$,表示第 $i$ 个询问的速度 $v_i=v'_i \oplus \left(t \times \left\lfloor\frac{\mathrm{lastans}}{2^{20}}\right\rfloor\right)$,其中 $\oplus$ 表示异或,$\mathrm{lastans}$ 表示上一个询问的输出(如果没有则为 $0$)。

输出格式

输出 $m$ 行,第 $i$ 行一个整数 $w_i$ 表示第 $i$ 次询问的功耗。

2 2 0
1 2
2
3
7
1

第一次询问的输出为 $(1+2)\oplus(2+2)=3\oplus 4=7$。

第一次询问的输出为 $(1+3)\oplus(2+3)=4\oplus 5=1$。

样例二、三

见附件下载。

限制与约定

对于 $100\%$ 的数据,$1\leq n, m\leq 2.5\times 10^5, t\in \{0, 1\}, 0\leq a_i,v'_i\lt 2^{60}$。

子任务编号 $n,m\leq$ $t=$ 分值
1 $10^3$ $1$ $30$
2 $10^5$ $1$ $30$
3 $2.5\times 10^5$ $0$ $30$
4 $2.5\times 10^5$ $1$ $10$

时间限制:$\texttt{3s}$

空间限制:$\texttt{512MB}$