1 条题解

  • 0
    @ 2026-8-24 12:58:31

    计数 123:题解

    思路

    数列中唯一不允许的相邻对是 (1,3)(1,3)(3,1)(3,1)。先删去所有的 22,得到一个只含 1,31,3 的序列 BB。设 BB 中相邻元素不同的位置有 rr 个。

    X2X_222 放回 BBX1+X3+1X_1+X_3+1 个空隙。上述 rr 个发生颜色切换的内部空隙必须至少放一个 22,其余空隙可以为空。先给这 rr 个空隙各放一个 22,再用隔板法分配剩余的 X2rX_2-r22,方案数为

    (X1+X2+X3rX1+X3).\binom{X_1+X_2+X_3-r}{X_1+X_3}.

    因此只需计算:固定 X1X_111X3X_333 时,恰有 rr 次颜色切换的二元序列有多少个。

    做法

    r=2k1r=2k-1,首尾颜色不同,两种颜色都恰有 kk 段。把 X1X_111X3X_333 分别拆成 kk 个非空段,且可以选择以哪种颜色开头,方案数为

    2(X11k1)(X31k1).2\binom{X_1-1}{k-1}\binom{X_3-1}{k-1}.

    r=2kr=2k,首尾颜色相同。以 11 开头并结尾时,11k+1k+1 段、33kk 段;交换两种颜色得到另一种情况。方案数为

    $$\binom{X_1-1}{k}\binom{X_3-1}{k-1} +\binom{X_1-1}{k-1}\binom{X_3-1}{k}.$$

    枚举 1rmin(X2,X1+X31)1\le r\le \min(X_2,X_1+X_3-1),将二元序列数乘上放回 22 的方案数并求和即可。

    组合数中的最大上标不超过 X1+X2+X33×106<998244353X_1+X_2+X_3\le 3\times10^6<998244353,预处理阶乘与逆阶乘后,每项可以 O(1)O(1) 求出。

    正确性证明

    删除所有 22 后,原序列唯一对应于一个二元序列 BB,以及每个空隙中被删除的 22 的个数。若 BB 的一个相邻位置由 11 切换为 33 或由 33 切换为 11,该空隙必须非空;否则原序列会出现禁止的相邻对。反之,只要所有切换空隙非空,原序列中所有相邻元素之差都不超过 11。所以固定 BB 后,隔板法给出的数量既无遗漏也无重复。

    一个恰有 rr 次切换的二元序列恰有 r+1r+1 个非空同色段。奇偶两种公式分别枚举首尾异色与首尾同色的全部可能,并用正整数拆分组合数确定各段长度,因此也无遗漏、无重复。对所有可行的 rr 求和即得到全部合法序列数。

    复杂度

    预处理阶乘为 O(X1+X2+X3)O(X_1+X_2+X_3),枚举切换次数为 O(min(X2,X1+X3))O(\min(X_2,X_1+X_3)),空间复杂度为 O(X1+X2+X3)O(X_1+X_2+X_3)

    • 1

    信息

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