| 比赛 |
收心赛 |
评测结果 |
AAAAAAAAEEEEAAAAEEEE |
| 题目名称 |
异或粽子 |
最终得分 |
60 |
| 用户昵称 |
终焉折枝 |
运行时间 |
2.525 s |
| 代码语言 |
C++ |
内存使用 |
9.01 MiB |
| 提交时间 |
2026-02-24 12:03:53 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN = 5e5 + 5;
typedef long long ll;
ll s[MAXN];
ll ans[MAXN];
int main() {
freopen("xor.in","r",stdin);
freopen("xor.out","w",stdout);
int n, k;
scanf("%d %d",&n, &k);
for(int i = 1; i <= n; i ++) {
scanf("%lld", &s[i]);
s[i] ^= s[i - 1];
}
int cnt=0;
for(int i = 1; i <= n; i ++)
for(int j = 0; j < i; j ++)
ans[++ cnt] = s[i] ^ s[j];
sort(ans + 1,ans + cnt + 1);
ll res = 0;
for(int i = 1; i <= k; i ++)
res += ans[cnt - i + 1];
printf("%lld\n", res);
return 0;
}