题目大意

这里

题解

我们枚举最后剩下的球的种类,那么其他球可以看做没用了。
设选定的球有\(a_i\)个,球的总数为\(s=\sum_{i=1}^n a_i\)。
现在问题变为:在一个长度为\(s\)的数轴上,初始在\(a_i\),问在不到达\(0\)的前提下到达\(s\)的期望步数。
设\(p_i\)表示在\(i\)点,向前/后移动一步的概率,有:\(p_i = \frac{i(s-i)}{s(s-1)}\)。
可以列出一个比较显然的式子:
\[f_i = (1-2p_i) f_i + p_i f_{i-1} + p_i f_{i+1} + step_i\]
注意\(step_i = \frac{i}{s}\),为什么?
感性理解一下。
想象你有一张很大的图,有一些节点是终止节点。
现在你要从当前节点向某个后继节点走一步,要算到达任意一个终止节点的期望步数。
由于我们现在选定了一个终止节点。
那么假设走到了\(0\)号点,就相当于走到了去往另一个终止节点的路径。
不妨把这"1"步拆分成若干份,这若干份的和为\(1\),分开计算。
由于走到\(0\)就会走到另一条路径上去,所以每一份不妨设为不走到其它路径上的概率。
所以\(step_i\)为从\(i\)点出发,不走到\(0\)的条件下走到\(s\)的概率。
这是一个经典问题了,很容易得到\(step_i = \frac{i}{s}\)。
树上高消肯定是可以的,然而需要求逆复杂度为\(O((\sum a)logn)\)无法通过此题。
所以我们需要进一步深入。
带入\(step_i = \frac{i}{s}\),稍微变换后有:
\[f_i - f_{i+1} = (f_{i-1}-f_i) +\frac{s-1}{s-i}\]
所以可以得到:\(f_{i}-f_{i+1} = (f_1-f_2) + \sum_{j=2}^{i}\frac{s-1}{s-j}\)
那么有:
\[f_1 = \sum_{i=1}^{s-1} (f_i - f_{i+1}) = (s-1)(f_1-f_2)+\sum_{i=2}^{s-1}\sum_{j=2}^{i} \frac{s-1}{s-j}\]
而\(\sum_{i=2}^{s-1}\sum_{j=2}^{i} \frac{s-1}{s-j} = \sum_{i=2}^{s-1} (s-i) \frac{s-1}{s-i} =(s-2)(s-1)\)。
所以\(f_1 = (s-1)(f_1-f_2) + (s-2)(s-1)\)。
而由于\(f_0\)属于另一条路径,即不存在,故\(f_1 = (1-2p)f_1 +pf_2 + \frac{1}{s}\)。
化简有:\(2f_1 = f_2 + 1\),所以\(f_1 - f_2 = 1 - f_1\)。
所以有:
\[f_1 = (s-1)(1-f_1) +(s-2)(s-1)\]
解得\(f_1 = \frac{(s-1)^2}{s}\),即\(f_1-f_2 = 1-\frac{(s-1)^2}{s}\)
而我们知道\(f_{i}-f_{i+1}\)与\(f_{i-1}-f_i\)之间的关系,所顺次推出所有\(f_i\)即可。
答案\(ans = \sum_{i=1}^n f_{a_i}\),复杂度\(O(max(a)logn)\)。

[CF850F] Rainbow Balls的更多相关文章

  1. CF850F Rainbow Balls 题解

    考虑最后变成哪一种颜色. 设 \(s = \sum\limits_{i=1}^n a_i\) 设现在有 \(k\) 种当前颜色, 需要全部变成该种颜色, 期望步数为 \(f_k\). 考虑状态转移.设 ...

  2. Codeforces554 C Kyoya and Colored Balls

    C. Kyoya and Colored Balls Time Limit: 2000ms Memory Limit: 262144KB 64-bit integer IO format: %I64d ...

  3. 13 Balls Problem

    今天讨论的是称球问题. No.3 13 balls problem You are given 13 balls. The odd ball may be either heavier or ligh ...

  4. Dapper学习 - Dapper.Rainbow(三) - Read

    前面已经介绍了新增/修改/删除了, 接下来介绍一下Rainbow的Read方法. 一.Read -- Rainbow原生 1. 先看测试代码 var conStr = ConfigurationMan ...

  5. Dapper学习 - Dapper.Rainbow(二) - Update/Delete

    上一篇介绍了Rainbow的Create方法, 这里就来介绍一下Update方法吧, 毕竟新增和修改是双胞兄弟嘛. 一.Update 1. 测试代码: var conStr = Configurati ...

  6. Dapper学习 - Dapper.Rainbow(一) - Create

    Dapper这个ORM有许多扩展, 我自己用过两种, 也算是比较主流的两种, Rainbow和Extension, 这里就先介绍下Rainbow吧, 毕竟这个先用, 当然, 由于我使用的是mysql数 ...

  7. Angular中使用Rainbow

    在使用js类库和框架的时候,大家都习惯于编写自己的使用示例,如果能将示例中的html,js和css 进行展示, 并进行高亮显示,效果会很棒,例如在html高亮显示jquery代码 上面的示例是使用ra ...

  8. Open judge C16H:Magical Balls 快速幂+逆元

    C16H:Magical Balls 总时间限制:  1000ms 内存限制:  262144kB 描述 Wenwen has a magical ball. When put on an infin ...

  9. hduoj 4710 Balls Rearrangement 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4710 Balls Rearrangement Time Limit: 6000/3000 MS (Java/Ot ...

随机推荐

  1. 记一个小bug的锅

    人生中的第一个线上bug 我参与的第一个项目就出现了.但是自己还觉得这锅也不全是自己的,毕竟那么明显的bug出现在历史模块中(不是我写的新模块),难道测试部就没一点责任?代码走查人员就没一点责任?不过 ...

  2. Linux学习之常用系统工作命令(一)

     由于centos和RHEL互通,两个版本可以相互学习,所以截图有两个界面 Linux系统与win系列是两个几乎完全不同的操作系统,但是就应用范围来说,是win系统更胜一筹,然而,这反而也成为win系 ...

  3. Unity 实现一个简单的 TPS 相机

    效果如下: 代码如下: public class TPSCamera : MonoBehaviour { /// <summary> /// 目标对象 /// </summary&g ...

  4. yocto-sumo源码解析(八): ProcessServer

    从前面章节的论述中,我们知道BitBakeServer实际上是一个ProcessServer,什么是ProcessServer不可不了解. 1. 类的声明: 首先这是一个python的多进程包里面的进 ...

  5. Visionpro介绍和下载安装视频教程

    ------------------------Halcon,Visionpro高清视频教程,点击下载视频--------------------------

  6. JavaScript学习(2)call&apply&bind&eval用法

    javascript学习(2)call&apply&bind&eval用法 在javascript中存在这样几种特别有用的函数,能方便我们实现各种奇技淫巧.其中,call.bi ...

  7. MariaDB远程连接问题

    MariaDB在设置完通过Navicat Premium远程连接账号验证通过,但是无法正常使用工具的功能,只能使用sql语句查询,但是通过控制台命令功能正常. 经过修改账号权限,添加新用户等功能都无法 ...

  8. Python参数传递,既不是传值也不是传引用

    面试的时候,有没有被问到Python传参是传引用还是传值这种问题?有没有听到过Python传参既不是传值也不是传引用这种说法?一个小小的参数默认值也可能让代码出现难以查找的bug? 如果你也遇到过上面 ...

  9. nginx正向vs反向代理

    1.概述 nginx的正向代理,只能代理http.tcp等,不能代理https请求.有很多人不是很理解具体什么是nginx的正向代理.什么是反向代理.下面结合自己的使用做的一个简介: 1)正向代理: ...

  10. 第38次Scrum会议(12/4)【欢迎来怼】

    一.小组信息 队名:欢迎来怼 小组成员 队长:田继平 成员:李圆圆,葛美义,王伟东,姜珊,邵朔,阚博文 小组照片 二.开会信息 时间:2017/12/4 17:50~18:20,总计30min. 地点 ...