AT_abc339_g [ABC339G] Smaller Sum
题目描述
给定一个长度为 N 的数列 A=(A1,A2,…,AN)。
请回答以下 Q 个查询。第 i 个查询如下:
- 求 ALi,ALi+1,…,ARi 中所有不超过 Xi 的数的总和。
但你需要以在线方式回答这些查询。
“在线回答查询”是指,在回答某个查询之后,才会得知下一个查询的内容。
因此,第 i 个查询并不会直接给出,而是以加密后的输入 αi, βi, γi 的形式给出。请按照以下步骤还原原本的第 i 个查询并作答。
- 设 B0=0,Bi=(第 i 个查询的答案)。
- 此时,可以通过如下方式解密查询:
- Li=αi⊕Bi−1
- Ri=βi⊕Bi−1
- Xi=γi⊕Bi−1
其中,x⊕y 表示 x 和 y 的按位异或(XOR)。
按位异或(XOR)是这样定义的:对于非负整数 A,B,A⊕B 的二进制表示中,第 2k 位(k≥0)的数,如果 A,B 的该位中只有一个为 1,则为 1,否则为 0。
例如,3⊕5=6(二进制表示为:011⊕101=110)。
输入格式
输入以如下格式从标准输入读入。
N A1 A2 … AN Q α1 β1 γ1 α2 β2 γ2 ⋮ αQ βQ γQ
输出格式
共输出 Q 行。
第 i 行输出第 i 个查询的答案。
输入输出样例 #1
输入 #1
8
2 0 2 4 0 2 0 3
5
1 8 3
10 12 11
3 3 2
3 6 5
12 0 11
输出 #1
9
2
0
8
5
说明/提示
数据范围
- 所有输入均为整数。
- 1≤N≤2×105
- 0≤Ai≤109
- 1≤Q≤2×105
- 对于加密后的查询,有:
- 0≤αi, βi, γi≤1018
- 对于解密后的查询,有:
- 1≤Li≤Ri≤N
- 0≤Xi≤109
样例解释 1
数列为 A=(2,0,2,4,0,2,0,3)。该输入包含 5 个查询。
- 初始时,B0=0。
- 第一个查询为 α=1, β=8, γ=3。
- 解密后 L1=1, R1=8, X1=3。
- 该查询的答案为 9,记为 B1。
- 下一个查询为 α=10, β=12, γ=11。
- 解密后 L2=3, R2=5, X2=2。
- 该查询的答案为 2,记为 B2。
- 下一个查询为 α=3, β=3, γ=2。
- 解密后 L3=1, R3=1, X3=0。
- 该查询的答案为 0,记为 B3。
- 下一个查询为 α=3, β=6, γ=5。
- 解密后 L4=3, R4=6, X4=5。
- 该查询的答案为 8,记为 B4。
- 下一个查询为 α=12, β=0, γ=11。
- 解密后 L5=4, R5=8, X5=3。
- 该查询的答案为 5,记为 B5。
由 ChatGPT 4.1 翻译