1 条题解

  • 0
    @ 2025-8-24 22:35:21

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar langni
    没有蓝√不改签 | 五级勾祭

    搬运于2025-08-24 22:35:21,当前版本为作者最后更新于2024-08-16 11:55:25,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    思路:可以利用前缀和来解决。

    因为 x0=xx \oplus 0 = x , xx=0x \oplus x = 0 ,

    所以 $\bigoplus_{i=l}^r x_i = (\bigoplus_{i=1}^{l-1} x_i) \oplus (\bigoplus_{i=1}^{r} x_i)$ 。

    有了这个公式,这道题就可以轻松解决。

    代码如下:

    #include <bits/stdc++.h>
    using namespace std;
    long long k,a[100010],q,l,r;
    int main(){
    	cin>>k;
    	for (int i=1;i<=k;++i){
    		cin>>a[i];
    		a[i]^=a[i-1];
    	}
    	cin>>q;
    	while (q--){
    		long long l,r,ans=0;
    		cin>>l>>r;
    		l--;
    		l%=(k+1);
    		r%=(k+1);
    		cout<<(a[r]^a[l])<<endl;
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    7387
    时间
    1000ms
    内存
    64MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者