| 比赛 |
收心赛 |
评测结果 |
AAAAAAAATTTTAAAATTTT |
| 题目名称 |
异或粽子 |
最终得分 |
60 |
| 用户昵称 |
rzzakioi |
运行时间 |
17.181 s |
| 代码语言 |
C++ |
内存使用 |
5.87 MiB |
| 提交时间 |
2026-02-24 11:08:17 |
显示代码纯文本
#include<cstdio>
#include<queue>
#define int long long
using namespace std;
int n,k,a[500005];
priority_queue<int,vector<int>,greater<int> >q;
signed main(){
freopen("xor.in","r",stdin);
freopen("xor.out","w",stdout);
scanf("%lld%lld",&n,&k);
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
a[i]^=a[i-1];
}
for(int i=1;i<=n;i++){
for(int j=i;j<=n;j++){
if(q.size()<k)q.push(a[i-1]^a[j]);
else{
if((a[i-1]^a[j])>q.top()){
q.pop();
q.push(a[i-1]^a[j]);
}
}
}
}
int ans=0;
while(!q.empty()){
ans+=q.top();
q.pop();
}
printf("%lld",ans);
return 0;
}