考虑最后变成哪一种颜色。

设 \(s = \sum\limits_{i=1}^n a_i\)

设现在有 \(k\) 种当前颜色, 需要全部变成该种颜色, 期望步数为 \(f_k\)。

考虑状态转移。设 \(p\) 为取出两个球颜色不同的概率。

\(f_i = (f_{i+1} + f_{i-1})p + (1 - 2p)f_i + v_i\)

考虑 \(v_i\)。由于我们考虑的 \(dp\) 是要求最后颜色是一定的,所以不能算上答案不是该颜色的答案。所以 \(v_i\) 就是最终颜色为这种颜色的概率。

如果颜色变动了,而让另一种颜色变成该颜色和该颜色变成另一种颜色的概率是一样的,所以 \(v_i = \frac{1}{2}(v_{i-1} + v_{i+1})\)

所以 \(2v_i = v_{i-1} + v_{i+1}\), \(v_{i+1} - v_i = v_i - v_{i-1} (= t)\)

又 \(v_0 = 1, v_s = 1\)

\[1 = v_s - v_0 = \sum\limits_{i=1}^s v_i - v_{i-1} = st
\]

所以 \(t = \frac{1}{s}\), \(v_i = \frac{i}{s}\)

所以\(f_i = (f_{i+1} + f_{i-1})p + (1 - 2p)f_i + \frac{i}{s}\)

\[2pf_i = (f_{i+1} + f_{i-1})p + \frac{i}{s}
\]
\[2f_i = f_{i+1} + f_{i-1} + \frac{\frac{i}{s}}{p}
\]

又 \(p = \frac{i(s-i)}{s(s-1)}\)

\[2f_i = f_{i+1} + f_{i-1} + \frac{\frac{i}{s}}{\frac{i(s-i)}{s(s-1)}}
\]
\[2f_i = f_{i+1} + f_{i-1} + \frac{s-1}{s-i}
\]

当 \(i=1\) 时,不需要考虑 \(f_0\)。\(2f_1 = f_2 -1\)

显然的,\(f_s = 0\)

\[2f_i = f_{i+1} + f_{i-1} + \frac{s-1}{s-i}
\]
\[f_i - f_{i+1} = f_{i-1} - f_i + \frac{s-1}{s-i}
\]
\[f_{i+1} - f_i = f_i = f_{i-1} - \frac{s-1}{s-i}
\]

而 \(f_1 = f_1 - f_s = \sum\limits_{i=2}^s f_i - f_{i-1}\)

\[=\sum\limits_{i=2}^s (f_1 - f_2) + \sum\limits_{j=2}^{i-1} \frac{s-1}{s-i}
\]
\[= (s-1)(f_1-f_2) + \sum\limits_{i=2}^s\sum\limits_{j=2}^{i-1} \frac{s-1}{s-i}
\]
\[=(s-1)(f_1-f_2) + \sum\limits_{j=2}^{s-1} \frac{s-1}{s-i} * (s-i)
\]
\[=(s-1)(f_1-f_2) + \sum\limits_{j=2}^{s-1} (s-1)
\]
\[=(s-1)(f_1-f_2) + (s-2)(s-1)
\]

而\(f_1 - f_2 = f_1 - (2 f_1 - 1) = 1 - f_1\)

\[f_1 = (s-1)(f_1-f_2) + (s-2)(s-1)
\]
\[f_1 = (s-1)(1-f_1) + (s-2)(s-1)
\]
\[f_1 = s-1 + (s-1)f_1 + (s-2)(s-1)
\]
\[sf_1 = (s-1)^2
\]
\[f_1 = \frac{(s-1)^2}{s}
\]

答案为 \(\sum\limits_{i=1}^n f_{a_i}\)

推到 \(max(a_i)\) 即可。

CF850F Rainbow Balls 题解的更多相关文章

  1. [CF850F] Rainbow Balls

    题目大意 这里 题解 我们枚举最后剩下的球的种类,那么其他球可以看做没用了. 设选定的球有\(a_i\)个,球的总数为\(s=\sum_{i=1}^n a_i\). 现在问题变为:在一个长度为\(s\ ...

  2. CF755G PolandBall and Many Other Balls 题解

    从神 Karry 的题单过来的,然后自己瞎 yy 了一个方法,看题解区里没有,便来写一个题解 一个常数和复杂度都很大的题解 令 \(dp_{i,j}\) 为 在 \(i\) 个球中选 \(j\) 组的 ...

  3. [POJ3783]Balls 题解

    题目大意 鹰蛋问题.$ n\(个蛋,\)m\(层楼. 存在一层楼\)E\(,使得\)E\(以及\)E\(以下的楼层鹰蛋都不会摔碎,问最坏情况下最少多少次能够知道\)E$. 非常经典的模型,初看题目根本 ...

  4. 题解-CF755G PolandBall and Many Other Balls

    题面 CF755G PolandBall and Many Other Balls 给定 \(n\) 和 \(m\).有一排 \(n\) 个球,求对于每个 \(1\le k\le m\),选出 \(k ...

  5. POJ 3687 Labeling Balls(拓扑排序)题解

    Description Windy has N balls of distinct weights from 1 unit to N units. Now he tries to label them ...

  6. 【题解】Popping Balls AtCoder Code Festival 2017 qual B E 组合计数

    蒟蒻__stdcall终于更新博客辣~ 一下午+一晚上=一道计数题QAQ 为什么计数题都这么玄学啊QAQ Prelude 题目链接:这里是传送门= ̄ω ̄= 下面我将分几个步骤讲一下这个题的做法,大家不 ...

  7. 洛谷 CF399B【Red and Blue Balls】题解

    n年没有更博客:我总结出了规律,当学的东西很难得时候都去学习,没有时间写博客,只有 内容对于我这种蒟蒻友好,又让我非常闲的慌时才写博客,这种博客以后也没有价值(也有些是做完一道题有成就感写的) 最近内 ...

  8. 题解-AtCoder ARC-083F Collecting Balls

    Problem ARC083F 题意概要:给定 \(2n\) 个二维平面上的球,坐标分别为 \((x_i,y_i)\),并给出 \(n\) 个 \(A\)类 机器人 和 \(n\) 个 \(B\)类 ...

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

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

随机推荐

  1. tcpack--3快速确认模式- ack状态发送&清除

    ACK发送状态的转换图 ACK的发送状态清除 当成功发送ACK时,会删除延迟确认定时器,同时清零ACK的发送状态标志icsk->icsk_ack.pending ACK发送事件主要做了:更新快速 ...

  2. day92:flask:flask简介&基本运行&路由&HTTP请求和响应

    目录 1.Flask简介 2.关于使用flask之前的准备 3.flask的基本运行 4.flask加载配置 5.传递路由参数(没有限定类型) 6.传递路由参数(通过路由转换器限定路由参数的类型) 7 ...

  3. synchronized 到底该不该用?

    我是风筝,公众号「古时的风筝」,一个兼具深度与广度的程序员鼓励师,一个本打算写诗却写起了代码的田园码农! 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在 ...

  4. cosbench使用方法

    前言 cosbench的功能很强大,但是配置起来可能就有点不是太清楚怎么配置了,本篇将梳理一下这个测试的配置过程,以及一些测试注意项目,以免无法完成自己配置模型的情况 安装 cosbench模式是一个 ...

  5. DevOps,你真的了解吗?

    与大数据和PRISM(NSA的监控项目之一),DevOps(开发运维)如今是科技人士挂在嘴边的热词,但遗憾的是,类似圣经,每个人都引用DevOps的只言片语,但真正理解并能执行的人极少.根据CA的一项 ...

  6. Windows查找JDK的路径

    第一步:确定是否安装JDK 在控制台输入: java -version 此时说明你电脑安装了JDK. 第二步:查找路径 然后在控制台输入: java -verbose 输出结果: 最后两行就是相应的j ...

  7. SQL Server 数据库bak备份文件还原操作和mdf文件附加操作

    前言:现在任何软件都离不开数据的支持,数据的价值是无价的,因此数据目前显得尤为重要,日常软件生产库的数据定时或实时备份必不可少,备份出的文件也需要进行验证,下边我将介绍SQL Server数据的的备份 ...

  8. Linux权限位(含特殊权限位s s t) 及chown\chmod命令使用

    1.普通权限位 ls –l查看文件的属性 [root@oldboy ~]# ls -l -rw-------. 1 root root 1073 Mar 4 22:08 anaconda-ks.cfg ...

  9. Java进阶专题(十七) 系统缓存架构设计 (上)

    前言 ​ 我们将先从Redis.Nginx+Lua等技术点出发,了解缓存应用的场景.通过使用缓存相关技术,解决高并发的业务场景案例,来深入理解一套成熟的企业级缓存架构如何设计的.本文Redis部分总结 ...

  10. P3694 邦邦的大合唱站队 题解

    \( 数据范围暗示状压,爪巴. \\ 首先考虑状态量. \\ 我们设计一个关于乐队数量的状态 S, 代表排列好的乐队.\\ \) eg: if(Set_排列好的队列 = {1, 2, 5}) then ...