题解 P7099 [yLOI2020] 灼

自己推的好像有一点点麻烦,而且和现有题解相比都要麻烦……

但是只是一道可以用初中数学知识解决的数学题。

题目很显然可以转化为:有 \(1\)\(n\)\(n\) 个点,一个人在点 \(x\),每次等概率向左或向右走 \(1\) 个点,求走出这 \(n\) 个点(即到 \(0\)\(n+1\) )的期望步数。(此句中的 \(n\) 与题目的 \(n\) 不同)

考虑设 \(f_i\) 表示在第 \(i\) 个点的期望步数,显然地:

\[f_0=f_{n+1}=0 \]

由对称性:

\[f_i=f_{n-i+1} \]

根据期望的定义可知:

\[f_i=\dfrac{1}{2}(f_{i-1}+f_{i+1})+1(1\le i\le n) \]

稍微转化一下:

\[2\times f_i=f_{i-1}+f_{i+1}+2 \]

\[(f_{i+1}-f_{i})-(f_{i}-f_{i-1})=-2 \]

所以说 \(f\) 的二阶差分一个非零常数 \(-2\)

设函数 \(g\)\(f\) 的差分,即 \(g_i=f_{i}-f_{i-1}\)。继续推:

\[g_{i+1}-g_{i}=-2 \]

\[g_{i}=g_1-2\times (i-1) \]

由于 \(f_i=g_i+f_{i-1}\),带入 \(g_i\)

\[f_i=f_1-2\times (i-1)+f_{i-1} \]

\(i=n+1\) 时:

\[f_{n+1}=f_1-2\times n+f_{n} \]

\[0=2\times f_1-2\times n \]

\[f_1=n \]

再推:

\[f_i=\sum_{j=1}^ig_j \]

代入 \(g_j\)

\[f_i=\sum_{j=1}^i(f_1-2\times(j-1)) \]

\[f_i=i\times f_1-i\times(i-1) \]

由于 \(f_1=n\),代入就得到最终答案:

\[f_i=-i^2+(n+1)\times i \]

所以代入,对于飞入坐标 \(x\),上一个虫洞坐标 \(l\),下一个虫洞坐标 \(r\),答案为:

\[ans=-(x-l)^2+(r-l)\times (x-l) \]

\[ans=(r-x)\times (x-l) \]

代码已经很简单了,不必放了吧。

posted @ 2021-06-11 22:31  Little09  阅读(61)  评论(0)    收藏  举报