AGC006C Rabbit Exercise
题目链接 problem 有 \(n\) 个兔子站成一排,每只兔子有自己的位置,有 \(m\) 次操作,第 \(i\) 次操作将 \(a_i\) 以相等的概率挪到关于 \(a_{i-1}\) 对称的位置或挪到与 \(a_{i+1}\) 对称的位置。 将这m次操作进行K轮。 问最终每只兔子位置坐标的期望。 solution 对于第 \(a_i\) 个兔子,设 \(a_i-a_{i-1}=x,a_{i+1}-a_i=y\) 。那么如果选择关于 \(a_{i-1}\) 对称,所到达的位置就是 \(l=a_{i-1}-x\) 。同样的,如果选择关于 \(a_{i+1}\) 对称,到达的位置就是 \(r=a_{i+1}+y\) ,根据期望的线性性,第 \(i\) 只兔子所在坐标的期望就是 \(t=\frac{l+r}{2}\) 。显然 \(t-l=r-t=x+y\) 。又因为 \(a_{i-1}-l=x,r-a_{i+1}=y\) 。所以就有 \(t-a_{i-1}=y,a_{i+1}-t=x\) 。 设 \(d_i=a_i-a_{i-1}\) ,对于第 \(i\) 个兔子进行一次操作,就相当于交换了 \(d_i\) 与 \(d_{i+1}\) 。 那么做法就很简单了,先根据 \(m\) 操作求出一个置换,然后利用快速幂计算置换 \(K\) 次后的答案。 复杂度 \(O(nlogK)\)