ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ABC249H Dye Color 题解

2022-05-02 08:32:04  阅读:151  来源: 互联网

标签:right frac Color 题解 sum Dye binom vdots 个球


有 \(n\) 个球,第 \(i\) 个球的颜色为 \(A_i\),颜色是 \(1 \sim n\)。重复以下步骤,直到所有球的颜色相同:

  • 从 \(2^n\) 个子集(包括空集)随机选出一个子集 \(\{X_1, X_2, X_3, \dots, X_K\}\),然后随机选择一个排列,然后从中间选出 \(K\) 个数 \((P_1, P_2, \dots P_K)\),接着 \(A_{X_i} \gets P_i\)。

求期望操作次数 \(\bmod ~ 998244353\)。\(N \le 2000\)。

  数学 势能函数

  可能算是官方题解的中文翻译版……加了少量自己的理解以及代码。

  对于一个序列 \(A = (A_1, A_2,\dots,A_N)\),我们定义 \(f(A)\) 表示期望操作次数。同时,如果所有元素全部相等,那么我们成为终止状态,定义 \(E_{A, A'}\) 表示序列 \(A\) 通过一次操作变成 \(A'\) 的概率。

  如果 \(A\) 是终止状态,那么 \(f(A) = 0\),否则,\(f(A) = 1 + \sum E_{A, A'} f(A')\)。

  同时,我们定义 \(B_{A, j}\) 表示 \(A_i = j\) 的个数。

  如果存在一个常数 \(C\) 和一个函数 \(g(x)\) 满足 \(\sum_{i = 1}^N g(B_{A,i}) = f(A) + C\),那么可以解决本问题,其中 \(g\) 应当满足 \(\sum_{i = 1}^n g(B_{A,i}) = 1 + \sum E_{A, A'}\sum_{i = 1}^n g(B_{A', i})\)。(这个是官方题解的说明,其实更加准确的说,\(g(x)\) 是一个势能函数)

  如果 \(g\) 满足 \(\forall i,g(B_{A, i}) = \frac{1}{n} + \sum E_{A, A'} g(B_{A', i})\) 那么上面的方程式是肯定满足的。

注意,这里的 \(g\) 是势能函数,也就是 \(g\) 只要满足如上关系,并且是和答案有关的函数即可。后面 \(g(0)\) 的值会用到这一点。

  进一步,当 \(B_i = j\),每一步使得 \(B_i = k\) 的概率可以写成之和 \(j, k\) 有关的形式。

  我们只要再求解出一个转移系数 \(P_{i, j}\) 表示,一次操作使得 \(B_x = i \Rightarrow B_x = j\) 的概率,根据之前的定义有 \(g(i) = \frac{1}{n} + \sum_{j} P_{i, j} g(j)\),注意到 \(\forall j > i + 1, P_{i, j} = 0\),于是我们的方程写成矩阵长这样:

\[\left(\begin{array}{ccccccc} P_{0,0}-1 & P_{0,1} & 0 & 0 & \ldots & 0 & 0 \\ P_{1,0} & P_{1,1}-1 & P_{1,2} & 0 & \cdots & 0 & 0 \\ \vdots & \vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\ P_{N-1,0} & P_{N-1,1} & P_{N-1,2} & P_{N-1,3} & \cdots & P_{N-1, N-1}-1 & P_{N-1, N} \end{array}\right)\left(\begin{array}{c} g(0) \\ g(1) \\ \vdots \\ g(N) \end{array}\right)=\left(\begin{array}{c} -\frac{1}{N} \\ -\frac{1}{N} \\ \vdots \\ -\frac{1}{N} \end{array}\right) \]

  考虑两种情况:

  • 从 \(i\) 个颜色为 \(x\) 的球中间拿出 \(j\) 个球,然后再从 \(n - i\) 个球中间取出 \(k\) 个球,随机染色后出现 \(x\) 颜色的概率是 \(\frac{j + k}{n}\),会剩下 \(i - j + 1\) 个 \(x\) 颜色的球,那么 \(P_{i, i - j + 1} \gets P_{i, i - j + 1}+ \frac{\sum_{k = 0}^{n - i} \binom{n - i}{k}\binom{i}{j} \frac{k+j}{n}}{2^n}\),而 \(\frac{\sum_{k = 0}^{n - i} \binom{n - i}{k}\binom{i}{j} \frac{k+j}{n}}{2^n} = \frac{\sum_{k = 0}^{n - i} \binom{n - i}{k}\binom{i}{j} \frac{k}{n}}{2^n} + \frac{\sum_{k = 0}^{n - i} \binom{n - i}{k}\binom{i}{j} \frac{j}{n}}{2^n} = \binom{i}{j} \left(\frac{n - i}{2^{i +1}n} +\frac{j}{2^{i}n}\right)\)。
  • 从 \(i\) 个颜色为 \(x\) 的球中间拿出 \(j\) 个球,然后再从 \(n - i\) 个球中间取出 \(k\) 个球,随机染色后没有出现 \(x\) 颜色的概率是 \(\frac{n - j - k}{n}\),会剩下 \(i - j\) 个球,那么 \(P_{i, i - j} \gets P_{i, i - j}+ \frac{\sum_{k = 0}^{n - i} \binom{n - i}{k}\binom{i}{j} \frac{n - k-j}{n}}{2^n}\),而 \(\frac{\sum_{k = 0}^{n - i} \binom{n - i}{k}\binom{i}{j} \frac{n - k - j}{n}}{2^n} = -\frac{\sum_{k = 0}^{n - i} \binom{n - i}{k}\binom{i}{j} \frac{k}{n}}{2^n} + \frac{\sum_{k = 0}^{n - i} \binom{n - i}{k}\binom{i}{j} \frac{n - j}{n}}{2^n} = \binom{i}{j} \left(-\frac{n - i}{2^{i +1}n} +\frac{n - j}{2^{i}n}\right)\)。

   然后可以 \(\mathcal O(n^2)\) 计算 \(P\) 了。

  计算了 \(P\) 之后,可以愉快的计算 \(g\) 了,注意到矩阵的特殊形式,令 \(g(0) = C\)(任意值,因为前文说的"势能"的概念),然后可以带出所有值,令初始状态每个数的出现次数为 \(b_i\),而终止状态就是一个数出现 \(n\) 次其他数出现 \(0\) 次,答案就是起始状态 - 终止状态,也就是 \(\left(\sum_{i} g(b_i)\right) - g(n) - (n - 1)g(0)\)。

  代码

标签:right,frac,Color,题解,sum,Dye,binom,vdots,个球
来源: https://www.cnblogs.com/werner-yin/p/16215017.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有