题意:
题解:
AC代码
/*
Author:zzugzx
Lang:C++
Blog:blog.csdn.net/qq_43756519
*/
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define endl '\n'
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int mod=1e9+7;
//const int mod=998244353;
const double eps = 1e-10;
const double pi=acos(-1.0);
const int maxn=1e6+10;
const ll inf=0x3f3f3f3f;
const int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
ll c[2][2],a[maxn];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int n,l,r;
cin>>n>>l>>r;
if(l==r&&l&1){cout<<0;return 0;}
if(l&1)l++;if(r&1)r--;
for(int i=1;i<=n;i++)cin>>a[i],a[i]^=a[i-1];
ll ans=0;
for(int i=0;i<=31;i++){
memset(c,0,sizeof c);
for(int j=1;j<=n;j++){
if(j>=l)c[j&1][(a[j-l]>>i)&1]++;
ans=(ans+c[j&1][(a[j]>>i)&1^1]*(1ll<<i)%mod)%mod;
if(j>=r)c[j&1][(a[j-r]>>i)&1]--;
}
}
cout<<ans;
return 0;
}

京公网安备 11010502036488号