CF2071D2.Infinite Sequence (Hard Version)
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是该问题的困难版本。不同版本的区别在于此版本中 l≤r。仅当您解决了该问题的所有版本时才能进行 hack。
给定一个正整数 n 和一个无限二进制序列 a 的前 n 项,该序列定义如下:
- 对于 m>n,am=a1⊕a2⊕…⊕a⌊2m⌋ ∗。
你的任务是计算给定区间 [l,r] 内元素的和:al+al+1+…+ar。
∗ ⊕ 表示按位异或操作。
输入格式
每个测试包含多个测试用例。第一行包含测试用例数量 t(1≤t≤104)。接下来是各个测试用例的描述。
每个测试用例的第一行包含三个整数 n、l 和 r(1≤n≤2⋅105,1≤l≤r≤1018)。
第二行包含 n 个整数 a1,a2,…,an(ai∈{0,1})——序列 a 的前 n 项。
保证所有测试用例的 n 之和不超过 2⋅105。
输出格式
对于每个测试用例,输出一个整数——给定区间内元素的和。
输入输出样例
输入#1
9 1 1 1 1 2 3 10 1 0 3 5 25 1 1 1 1 234 567 0 5 1111 10000000000 1 0 1 0 1 1 1000000000000000000 1000000000000000000 1 10 41 87 0 1 1 1 1 1 1 1 0 0 12 65 69 1 0 0 0 0 1 0 1 0 1 1 0 13 46 54 0 1 0 1 1 1 1 1 1 0 1 1 1
输出#1
1 5 14 0 6666665925 0 32 3 2
说明/提示
在第一个测试用例中,序列 a 为:
[1,1,1,0,0,1,1,1,1,1,…]
其中 l=1,r=1。区间 [1,1] 的元素和为 a1=1。
在第二个测试用例中,序列 a 为:
[1,0,1,1,1,0,0,1,1,0,…]
其中 l=3,r=10。区间 [3,10] 的元素和为
a3+a4+…+a10=1+1+1+0+0+1+1+0=5.
翻译由 DeepSeek R1 完成
输入解题思路,AI测评打分。不知道怎么写?