给定长为 的数组 ,下标从 计算。给定整数 。记 表示按位异或, 表示 。求: 即求所有长度至少为 的区间 里每个区间异或和最小值的最大值。
未经优化的伪代码为:
ans = 0;
for (int s = k; s <= n; ++s) {
for (int r = s; r <= n; ++r) {
min_v = 2e9;
for (int i = r - s + 1; i <= r; ++i) {
xsum = 0;
for (int j = 1; j <= i; ++j) {
xsum ^= a[j];
}
min_v = min(min_v, xsum);
}
ans = max(ans, min_v);
}
}
输入
输入一行两个整数 。
接下来输入一行 个整数,第 个整数代表 。
输出
输出一行一个整数,代表答案。
样例
标准输入 复制文本 |
8 2 0 1 1 2 6 5 2 7 |
标准输出 复制文本 |
3 |
来源
2022CS杯预选赛