【题解】Luogu P3872小魔女帕琪

Link

题解

\(p_i\) 为第 \(i\) ~ \(i+6\) 次成功连招的概率,令 \(s=\sum{a_i}\)

直接考虑前 \(7\) 次凑足一次大招的概率:\(p_1=7! \times \frac{\prod{a_i}}{s \times (s-1) \times (s-2) \times (s-3) \times (s-4) \times (s-5) \times (s-6)}\)

考虑证明对于任意\(i,j\),有 \(p_i=p_j\)

直接归纳,若 \([i,i+6]\) 为一个合法串,考虑枚举第 \(i+6\) 个位置填的数 \(k\),那么将第 \(i+6\) 个位置的数放到第 \(i\) 个位置,一定与 \([i-1,i+5]\) 的情况对应,则
\(p_{i+1}=\sum\limits_{i=1}^7{\frac{p_i}{7}}=p_i\),同时,显然有 \(E(i)=p_i \times 1=p_i\)

由于期望的线性性质:

\[E=(n-6)E(i)=7! \times \frac{\prod{a_i}}{s \times (s-1) \times (s-2) \times (s-3) \times (s-4) \times (s-5)} \]

直接输出即可。

代码

int a[8],s;double ans=1;
int main(void)
{
	fr(i,1,7) a[i]=read(),s+=a[i];
	fr(i,1,6) ans=ans*i*a[i]/(s-i+1);
	ans=ans*a[7]*7.0;
    printf("%.3lf\n",ans);
    return 0;
}
posted @ 2021-11-04 14:34  L_G_J  阅读(32)  评论(0编辑  收藏  举报