1 条题解

  • 0
    @ 2026-9-3 11:10:48

    题解

    思路

    先把可达性转化为环上连续 1 段条件,再用 Burnside 引理统计循环等价类。三个子任务依次用直接枚举、逐周期有界组成 DP、统一短段预处理完成固定点计数。

    1. 等价条件

    一个结果串可由初始串得到,当且仅当它满足:

    1. 1 的总数不超过 c+kc+k;
    2. 在环上至少存在连续 cc 个 1。

    第二条保证把这段连续的 1 旋转到开头后,能够保留初始串的前 cc 个 1。因此问题等价于统计满足这两个条件的二进制项链。

    2. 子任务 1:枚举所有二进制串

    当 n≤18n\le18 时,枚举全部 2n2^n 个二进制串。检查 1 的数量和环上最长连续 1,再把所有循环移位中的字典序最小者作为等价类代表,插入集合即可。

    时间复杂度为 O(2nn2)O(2^n n^2),空间复杂度为 O(2nn)O(2^n n)。

    3. Burnside 引理

    考虑旋转 xx 个位置,令 g=gcd⁡(n,x)g=\gcd(n,x),q=n/gq=n/g。被该旋转保持不变的字符串由一个长度为 gg 的块重复 qq 次得到。

    若基础块有 ww 个 1,原串就有 qwqw 个 1,因此

    w≤⌊c+kq⌋.w\le \left\lfloor\frac{c+k}{q}\right\rfloor.

    设被这次旋转保持且满足条件的字符串数为 F(g)F(g)。答案为

    1n∑x=0n−1F(gcd⁡(n,x)).\frac1n\sum_{x=0}^{n-1}F(\gcd(n,x)).

    除法在模 109+710^9+7 意义下用逆元完成。

    4. 子任务 2:逐个周期做有界组成 DP

    当 g≤cg\le c 时,若周期串含有连续 cc 个 1,它只能是全 1,故 F(g)=[c+k≥n]F(g)=[c+k\ge n]。

    以下设 g>cg>c。先用二项式系数求出基础块中 1 数不超过上界的全部方案,再减去环上所有 1 段长度都小于 cc 的坏方案。

    若基础块有 zz 个 0、w=g−zw=g-z 个 1,从一个被标记的 0 出发,依次记录相邻两个 0 之间的 1 数,得到一个长度为 zz、每项位于 [0,c−1][0,c-1]、总和为 ww 的有界组成。用普通背包 DP 求其数量。每个环形标号串有 zz 个可标记的 0,而标记位置有 gg 种,因此坏串数为

    gz [xw](1+x+⋯+xc−1)z.\frac gz\,[x^w](1+x+\cdots+x^{c-1})^z.

    对所有 g,wg,w 分别做 DP 即可通过 n≤60n\le60。

    5. 满分算法:统一预处理短 1 段

    满分算法不再为每个 gg 重做 DP。定义

    d[z][ℓ]d[z][\ell]

    为含 zz 个 0、总长度为 ℓ\ell,且每个 1 段长度都小于 cc 的线性结构数量。加入一个新 0 时,其后可接 00 到 c−1c-1 个 1,用差分转移即可在 O(1)O(1) 均摊时间完成:

    d[z+1][ℓ+1…ℓ+c]+=d[z][ℓ].d[z+1][\ell+1\ldots\ell+c]\mathrel{+}=d[z][\ell].

    再对每一行建立前缀和。枚举环形串开头的 1 段长度 p<cp<c,固定紧随其后的一个 0,余下部分便可由 dd 的区间和计数;同时约束末尾 1 段与开头拼接后仍短于 cc。这样每个 F(g)F(g) 可在线性时间内求出,全部预处理与统计总复杂度为 O(n2)O(n^2)。

    也可以用容斥式独立核验有界组成:

    $$[x^w](1+x+\cdots+x^{c-1})^z =\sum_{j=0}^{\lfloor w/c\rfloor}(-1)^j\binom zj\binom{w-cj+z-1}{z-1}.$$

    最终时间复杂度为 O(n2)O(n^2),空间复杂度为 O(n2)O(n^2)。

    6. 正确性要点

    • 可达性等价于“1 总数不超过 c+kc+k 且环上存在长度至少 cc 的 1 段”。
    • Burnside 引理把循环等价类计数转化为每个旋转的固定点计数。
    • 固定点必为长度 gg 的基础块重复 n/gn/g 次,故总 1 数约束按重复次数缩放。
    • 坏方案恰好是所有环形 1 段长度均小于 cc 的字符串;线性 DP 对它们无重无漏计数。
    • 从全部固定点中减去坏方案并对旋转取平均,得到且仅得到所求等价类。

    做法

    预处理组合数、短 1 段 DP 及其行前缀和;枚举所有旋转的最大公因数 gg,求该旋转的合法固定点数,累加后乘以 nn 的模逆元。

    复杂度

    满分算法时间复杂度为 O(n2)O(n^2),空间复杂度为 O(n2)O(n^2)。

    • 1

    信息

    ID
    1449
    时间
    2000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者