1 条题解

  • 0
    @ 2025-8-24 22:46:02

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar williamwei
    经典不流传

    搬运于2025-08-24 22:46:02,当前版本为作者最后更新于2025-06-14 18:02:46,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    一个目前是最优解,且异于其它任何题解的解法,在未卡常的情况下 15ms。

    f[n][k]f[n][k]nn 次操作后还剩 kk 种颜色的概率。

    操作后合并颜色,概率是 k(k1)n2\dfrac{k(k-1)}{n^2}

    操作后不合并颜色,概率是 1k(k1)n21-\dfrac{k(k-1)}{n^2}

    所以 $f[n][k]=f[n - 1][k + 1] \times \dfrac{k(k-1)}{n^2} + f[n - 1][k] \times (1-\dfrac{k(k-1)}{n^2})$。

    用矩阵快速幂优化 DP 即可,将矩阵 AA 的第 kkkk 列设为 1k(k1)n21-\dfrac{k(k-1)}{n^2},第 kkk1k-1 列设为 k(k1)n2\dfrac{k(k-1)}{n^2},计算这个矩阵的 TT 次方 B=ATB = A^T

    答案为从 nn 个颜色经过 TT 次操作后仍大于等于 kk 个颜色的方案数 i=knBn,i\sum \limits_{i=k}^n B_{n,i}

    这道题真的那么简单吗?

    不难发现,k(k1)n2\dfrac{k(k-1)}{n^2} 这个概率式子随便举一个例子就是错的,例如一个幅颜色为 1 1 4 5 1 4 的画,这里有 33 种颜色,用这个公式算出的概率是 3×262=16\dfrac{3 \times 2}{6^2} = \dfrac{1}{6},但实际上只有在选择 i4i\neq 4j=4j = 4 时才会使得颜色总数减一,概率为 536\dfrac{5}{36},和公式结果不符。

    为什么算出来的内容和实际结果不一样呢?因为在这里的“概率”指的是概率的期望,即所有情况下的概率平均值。

    用只维护颜色的数量得到的结果乘上所有情况下的概率平均值,从而得到的概率,等价于取所有情况下的结果乘以对应概率的平均值。

    现在就可以试图证明 k(k1)n2\dfrac{k(k-1)}{n^2} 这个概率的正确性了,先给这些颜色打上标号 1k1 \sim k,而不是 1n1 \sim n,再忽略颜色的排列状态,例如 1 1 44 1 1 等价,这样不会出现问题,因为现在在算概率的期望,此处概率的期望等于概率总和除以总数。

    考虑钦定恰好ii 个颜色在画种恰好出现 11 次。

    对于每个 ii,先在 kk 个颜色中选出 ii 个颜色,再确定剩下的颜色的方案数,此时为了使颜色减一,第二个选的下标 jj 必定是这 ii 个颜色之一,第一个下标只要不等于 jj 就行,此时概率为 i(n1)n2\dfrac{i(n-1)}{n^2}

    关于颜色划分总数和选完 ii 个颜色后的方案数,使用插板法,颜色划分总数相当于在 n1n-1 个位置中间插 k1k-1 个板,计算方案数时要注意不能再让某个颜色只出现一次,所以对剩下的 kik-i 个颜色都默认已经出现 11 次,再转换为 nk1n-k-1 个位置插 ki1k-i-1 个板的问题。据此推出公式:

    $$\frac{1}{\binom{n-1}{k-1}}\sum \limits_{i=1}^{k-1} \dfrac{i(n-1)}{n^2}\dbinom{k}{i}\dbinom{n-k-1}{k-i-1} $$

    在这里可能会出现 n=kn=k 的情况,导致组合数未定义,因为 n=kn=k 时就是 nn 个不同的数,使得颜色个数发生变化只要选任意两个不同的下标即可,概率为 n(n1)n2\dfrac{n(n - 1)}{n^2},等于公式,下文只讨论 n>kn>k 情况。

    将里面的常数提出来,变成:

    $$\frac{n-1}{n^2\binom{n-1}{k-1}}\sum \limits_{i=1}^{k-1} i\dbinom{k}{i}\dbinom{n-k-1}{k-i-1} $$

    要证这个式子等于 k(k1)n2\dfrac{k(k-1)}{n^2},列出等式:

    $$\frac{n-1}{n^2\binom{n-1}{k-1}}\sum \limits_{i=1}^{k-1} i\dbinom{k}{i}\dbinom{n-k-1}{k-i-1} = \dfrac{k(k-1)}{n^2} $$

    两边同乘 n2n^2,把左边的 (n1k1)\dbinom{n-1}{k-1} 乘到右边,n1n-1 除到右边,变为证:

    $$\sum \limits_{i=1}^{k-1} i\dbinom{k}{i}\dbinom{n-k-1}{k-i-1} = \dfrac{k(k-1)}{n}\dbinom{n-1}{k-1} $$

    考虑左侧求和部分:

    $$\sum \limits_{i=1}^{k-1} i\dbinom{k}{i}\dbinom{n-k-1}{k-i-1} $$

    利用恒等式 i(ki)=k(k1i1)i\dbinom{k}{i}=k\dbinom{k-1}{i-1},代入后变为:

    $$k \sum \limits_{i=1}^{k-1}\dbinom{k-1}{i-1}\dbinom{n-k-1}{k-i-1} $$

    此时将这个式子和等式右侧同除 kk,令 j=i1j=i-1,左侧式等于:

    $$\sum \limits_{j=0}^{k - 2}\dbinom{k-1}{j}\dbinom{n-k-1}{k-j-2} $$

    a=k1a=k-1, b=nk1b=n-k-1,求和内容变为:

    $$\sum \limits_{j = 0}^{k - 2}\dbinom{a}{j}\dbinom{b}{a-j-1} $$

    利用 Vandermonde 恒等式的变形,

    $$\sum \limits_{j} \dbinom{a}{j}\dbinom{b}{c-j}=\dbinom{a+b}{c} $$

    带入左侧式:

    $$\sum \limits_{j=0}^{a-1}\dbinom{a}{j}\dbinom{b}{(a-1)-j}=\dbinom{a+b}{a-1} $$

    恰好在非 00 的求和范围之内。因为 a=k1a=k-1, b=nk1b=n-k-1,所以左侧式等于 (n2k2)\dbinom{n-2}{k-2}

    变为证明:$\dbinom{n-2}{k-2} = \dfrac{k-1}{n}\dbinom{n-1}{k-1}$

    k<2k<2 时由于未定义需要单独考虑,先考虑 k2k \geq 2 情况,将左右侧展开,左侧式子为:

    (n2k2)=(n2)!(k2)!(nk)!\dbinom{n-2}{k-2} = \dfrac{(n-2)!}{(k-2)!(n-k)!}

    右侧式子为:

    $$\dfrac{k-1}{n}\dbinom{n-1}{k-1} = \dfrac{(k-1)(n-1)!}{(n-1)(k-1)!(n-k)!}=\dfrac{(n-2)!}{(k-2)!(n-k)!} $$

    两侧式子相等。

    考虑 k<2k<2 情况,即 k=1k=1,左侧求和范围为 101 \sim 0,所以左侧式子为 00,右侧内容也为 00,证毕。

    • 1

    信息

    ID
    8389
    时间
    1000ms
    内存
    512MiB
    难度
    5
    标签
    递交数
    0
    已通过
    0
    上传者