1 条题解
-
0
自动搬运
来自洛谷,原作者为

qbf!
Never Give Up搬运于
2025-08-24 23:04:17,当前版本为作者最后更新于2025-03-31 17:47:30,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
下文的 操作 表示将集合 变成 。
先考虑如何求出 的 mex-limit,我们观察一些性质。
性质一:若存在 使得 ,则无论经过多少次操作,都有 。
于是我们可以将 中 的数删去,不影响 mex-limit。
性质二:设 为满足 的最大的 ,若 ,则我们令 ,不影响 mex-limit。
证明:我们发现一次操作后, 中所有数的二进制下第 位都发生了变化,且此时 没有被填满,因此我们可以删掉操作后 的部分,即操作前 的部分。
性质三:设 为满足 的最大的 ,若 且 ,则我们可以令 $A\leftarrow\{i\oplus(2^{k+1}-1)\mid 2^k\le i\land i\in A\}$,不影响 mex-limit。
证明:此时 ,故操作一次后 就变成了 ,再利用性质二即可得证。
性质四:设 为满足 的最大的 ,若 且 ,则 的 mex-limit 为 。
性质五:任意集合都是 mex-stable 的,且 mex-limit 必定为 的幂。
有了这几个性质,我们就可以进行 DP 了,设 表示我们在 中选择 个不同的数,且 必须选择,得到集合的 mex-limit 为 的方案数,转移如下:
-
设 为满足 的最大的 ,若 ,则 中的数必定不会影响 mex-limit,我们从 转移过来,系数是 。
-
若 :
-
若 ,则根据性质二,我们从 转移过来。
-
若 ,则根据前面的性质,此时我们发现若 填满了,那么 mex-limit 还会递归到 ,因此我们需要设一个辅助 DP。
设 表示在 中选择 个不同的数,且 必须选择, 必须不选择,得到集合的 mex-limit 为 的方案数,则 会从 转移过来。
-
若 ,则根据性质四,此时 mex-limit 为 ,方案数为 。
-
-
若 ,那么是平凡的。
的转移和 是类似的,注意 和 在转移时可能有一些边界情况。
若直接实现这个 DP,则时间复杂度是 级别的,注意到转移是卷积的形式,且模数 减去一后可以被 整除,故我们只需先求出 的原根,就可以用 NTT 优化转移的时间复杂度。
最后的时间复杂度是 的。
-
- 1
信息
- ID
- 9000
- 时间
- 3000ms
- 内存
- 512MiB
- 难度
- 7
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者