社区讨论
nlogn神秘做法70pts求教
P14359[CSP-J 2025] 异或和参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhqm4yah
- 此快照首次捕获于
- 2025/11/09 02:23 4 个月前
- 此快照最后确认于
- 2025/11/16 14:06 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
int n,k,a[500005],qzh[500005],tt;
vector<int> ve[1500000];
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
qzh[i]=qzh[i-1]^a[i];
}
for(int i=1;i<=n;i++){
ve[qzh[i]].push_back(i);
}
int pl=-1;
ve[0].push_back(0);
for(int i=1;i<=n;i++){
int noww=qzh[i]^k;
if(ve[noww].size()==0) continue;
int p=upper_bound(ve[noww].begin(),ve[noww].end(),i)-ve[noww].begin()-1;
if(p<0) continue;
// cout<<'x'<<endl;
// cout<<'y'<<endl;
if(ve[noww][p]>=pl){
// cout<<'z'<<endl;
pl=i;
tt++;
}
}
cout<<tt<<endl;
return 0;
}
所有k=0或1的点都没过
回复
共 0 条回复,欢迎继续交流。
正在加载回复...