CF850F Rainbow Balls
用期望势能函数做了一下,发现很简单。
题目链接: CF850F Rainbow Balls 。
题目描述:
有 n 种颜色,每种颜色有 ai 个球。
每秒随机两个球 i 和 j ,将 j 的颜色变成 i 的。
当所有球颜色一样时,游戏结束。
求游戏期望秒数。
经典套路。
令 m=∑ai , k 为当前剩余颜色个数, ϕ(a1,a2,⋯,ak) 表示局面为 (a1,a2,⋯,ak) 时的势能函数。
设 ϕ(a1,a2,⋯,ak)=∑g(ai)
那么为了满足条件,有 ∑E[Δg(ai)]=−1
然后,对于 i ,有:
E[Δg(ai)]=maim−1m−ai(g(ai−1)−g(ai))+mm−aim−1ai(g(ai+1)−g(ai))
不妨钦定 E[Δg(ai)]=−mai ,这样就满足了势能函数使用条件。
接着对于 i 分析:
maim−1m−ai(g(ai−1)−g(ai))+mm−aim−1ai(g(ai+1)−g(ai))=−maim−1m−ai(g(ai−1)+g(ai+1)−2g(ai))=−1g(ai−1)+g(ai+1)−2g(ai)=ai−mm−1
令 d(i)=g(i+1)−g(i) ,那么有:
d(ai)−d(ai−1)=ai−mm−1d(x)=d(x−1)+x−mm−1
最后钦定 d(0)=g(0)=0 ,就能解出闭式解。