专栏文章

「DLESS-3」XOR and Split 题解

P13686题解参与者 5已保存评论 4

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
4 条
当前快照
1 份
快照标识符
@mip1lyyc
此快照首次捕获于
2025/12/03 04:40
3 个月前
此快照最后确认于
2025/12/03 04:40
3 个月前
查看原文
出题人题解。

Subtask 1

可以暴力枚举划分,然后按照题意判断,复杂度是 O(n2n)\mathcal O(n2^n) 的。

Subtask 2

可以采用 DP 的方式求解所有可能异或出的权值。
fi,j,kf_{i,j,k} 表示前 ii 个位置,分出了 jj 段,当前异或和为 kk 是否可行。
转移枚举一下上一个位置即可。
时间复杂度是 O(n4)\mathcal O(n^4) 的。

Subtask 3

此处提出一个观察,一个段的长度至多为 22,可以通过调整的方法来说明,若有一个段的长度 >2>2,将其中两个位置放到最后形成一个贡献为 00 的段,答案不变。
所以上文的转移是 O(1)\mathcal O(1) 的,时间复杂度是 O(n3)\mathcal O(n^3) 的。

Subtask 4

n=2kn=2^k 的时候,直接分出 nn 段,n>2n>2 答案就是 12...n=n1\oplus 2\oplus ...\oplus n = nn=2n=2 答案是 33

Subtask 5

我们说明,当 n4n\ge 4 时,nn2k2^k 的时候,答案是 nn,否则是第一个满足 2i>n2^i>n2i12^i-1
n=2kn=2^k 的时候已经在 Subtask4 说明,现在我将证明 nn 不是二的幂次时的答案。
首先答案上界一定不超过 2i12^i-1,因为可能的最高位也是小于 2i2^i 的。
下面给出一种可能的方法达到这个上界:
先看 n=2k+1n=2^k+1 的情况,我们知道 12...(2k1)1\oplus 2\oplus ...\oplus (2^k-1)00,所以可以这样构造:前 2k22^k-2 段,每段长度是 11,然后一段长度是 22,最后一段长度是 11
比如 n=17n=17 的时候,方案就是 1 2 3... 14 15 15 16
这样就得到了 2k(2k1)=2k+112^k\oplus (2^k-1) = 2^{k+1}-1
然后和 2k+12^k+1 奇偶性相同的 nn 也是容易的,可以在后面加入两个元素构成的无用段。
再看 2k+22^k+2 的情况,我们把多一个的 2k12^k-1 换成 2k12^{k-1}2k112^{k-1}-1,效果相同。
该做法在 nn 较小的时候没有足够的元素用来调整,所以特判 n4n\le 4 即可。
时间复杂度 O(1)\mathcal O(1),期望得分 100100

评论

4 条评论,欢迎与作者交流。

正在加载评论...