这是个停时问题,考虑鞅的停时定理。
首先设计状态,直接设每个位置是否有球毫无意义,复杂且难以刻画,在写下式子时还需要关心哪些位置是否有球。我们尝试只保留留在圈内的球,我们发现我们并不关心具体位置,我们可以只关心第 \(i\) 个球和 \(i-1\) 个球的相对距离,这样是充分的。
我们定义势能函数 \(F(S)=\sum_{i=1}^t f(b_i)\),我们希望 \(\sum_{i=1}^tf(b_i+1)+f(b_{i+1}-1)-f(b_i)-f(b_{i+1})=-n\)。
整理一下式子,变成 \(\sum_{i=1}^t f(b_{i}+1)+f(b_{i}-1)-2f(b_i)=-n\),见到这种式子我们可以想到差分,但是我没有想到,所以我考虑直接做。
我们寻找元之间的定量恒等关系,发现不论如何,\(\sum_{i=1}^tb_i=m\),如果我们能让每个 \(i\) 贡献 \(-b_i\times\frac {n}m\),这样我们就可以使得式子恒等。
于是我们试着构造满足 \(f(x+1)+f(x-1)-2f(x)=-\frac n m\) 的递推式,发现转移递推式为 \(f(x+1)=2f(x)-f(x-1)-\frac n m\),直接矩阵乘法加速即可。
发现 T 了,不过转移矩阵都是一样的,我们直接预处理每个二的整次幂的矩阵即可通过。