整理的算法模板合集: ACM模板
实际上是一个全新的精炼模板整合计划
Weblink
https://atcoder.jp/contests/abc199/tasks/abc199_f
Problem
Solution
我们要知道图的邻接矩阵的幂的意义,详见 P3758 [TJOI2017]可乐
解题报告(九) 矩阵与行列式(ACM / OI)超高质量题解
这个图就非常形象:
读题之后发现显然就是建图然后求 k k k 次幂即可,因为有 k k k 次互不影响的操作嘛。
我们拥有的操作是等概率地选择一条边,将这条边连接的两个点的点权变成两个点的点权的平均值。显然很难维护每一条边连接的两个点的平均值,所以我们换个思想,仅需维护每一个点得到的贡献即可。
显然对于每一个点的期望权值,只有自己对自己的贡献(概率),以及自己所连向的点对自己的贡献。
我们设 d i d_i di 为点 i i i 的度数。
首先考虑自己对自己的贡献:
那么对于一个点来说,不做任何操作的话对自己的贡献即为自己的点权 a i a_i ai,但是当我选择一条边的时候,每一个点一共连有 d i d_i di 条边,所以每一个点被选中的概率显然为 d i m \cfrac{d_i}{m} mdi,那么一个点被选中之后,它自己的贡献就从 a i a_i ai 变成了 a i 2 \cfrac{a_i}{2} 2ai(因为我们进行的是取平均数的操作),所以原来的期望为