Codeforces Round 859 (Div. 4) D. Odd Queries
将[l,r]
的数字变成k,问整个数组的和是不是一个奇数。
使用前缀和维护即可。
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{
int T;cin>>T;
while(T--)
{
int n,q;cin>>n>>q;
vector<LL> a(n+1);
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=2;i<=n;i++) a[i]+=a[i-1];
LL sum=a[n];
while(q--)
{
LL l,r,k;cin>>l>>r>>k;
LL res=sum+(r-l+1)*k-(a[r]-a[l-1]);
if(res%2==1) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
return 0;
}