| 比赛 |
收心赛 |
评测结果 |
AAAAAAAAEEEEAAAAEEEE |
| 题目名称 |
异或粽子 |
最终得分 |
60 |
| 用户昵称 |
ychyyx |
运行时间 |
3.659 s |
| 代码语言 |
C++ |
内存使用 |
70.82 MiB |
| 提交时间 |
2026-02-24 11:03:24 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,k;
long long s[500005];
struct node{
int l,r;
long long val;
}b[10000005];
int cnt;
long long ans;
bool cmp(node x,node y){
return x.val>y.val;
}
int main(){
freopen("xor.in","r",stdin);
freopen("xor.out","w",stdout);
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++){
scanf("%lld",&s[i]);
s[i]=s[i-1]^s[i];
}
for(int i=1;i<=n;i++){
for(int j=i;j<=n;j++){
b[++cnt]={i,j,s[j]^s[i-1]};
}
}
sort(b+1,b+1+cnt,cmp);
for(int i=1;i<=k;i++){
ans+=b[i].val;
}
printf("%lld",ans);
return 0;
}