misc#P23017. Or
Or
题目描述
DDOSvoid 正在学习按位运算,遇到了一个有趣的问题。
给定两个序列, 和 ,长度均为 。此外,还有 个查询。在每个查询中,你会得到一个区间 。你的任务是计算以下整数的按位或(OR)运算结果:$a_{l}, a_{l} + b_{l + 1}, a_{l} + b_{l + 1} + b_{l + 2}, \dots , a_{l + 1} + b_{l + 2}, a_{l + 1} + b_{l + 2} + b_{l + 3}, \dots , a_{r}$。换句话说,你需要计算 $\bigoplus_{i = l}^{r} \bigoplus_{j = i}^{r} (a_{i} + \sum_{k = i + 1}^{j} b_{k})$。这里的符号 表示按位或运算。
输入格式
输入的第一行包含一个整数 ,表示测试用例的数量。
对于每个测试用例:
第一行包含两个整数 。
第二行包含 个整数 。
第三行包含 个整数 。
接下来的 行,每行包含两个整数 。
保证所有测试用例中,,。
输出格式
为了简化输出,我们用 表示第 个查询的答案,并设 ,。
在每个测试用例中,你只需要输出一个整数 $(\sum_{i = 1}^{m} ans_i \times base^{i - 1}) \bmod P$。
1
5 1
1 2 3 4 5
1 1 1 1 1
2 4
1631
解释 #1
对于查询 ,你需要计算以下整数的按位或运算结果:,,,,,。
相关
在下列比赛中: