题解 P7099 [yLOI2020] 灼

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

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

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

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

f0=fn+1=0

由对称性:

fi=fni+1

根据期望的定义可知:

fi=12(fi1+fi+1)+1(1in)

稍微转化一下:

2×fi=fi1+fi+1+2

(fi+1fi)(fifi1)=2

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

设函数 gf 的差分,即 gi=fifi1。继续推:

gi+1gi=2

gi=g12×(i1)

由于 fi=gi+fi1,带入 gi

fi=f12×(i1)+fi1

i=n+1 时:

fn+1=f12×n+fn

0=2×f12×n

f1=n

再推:

fi=j=1igj

代入 gj

fi=j=1i(f12×(j1))

fi=i×f1i×(i1)

由于 f1=n,代入就得到最终答案:

fi=i2+(n+1)×i

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

ans=(xl)2+(rl)×(xl)

ans=(rx)×(xl)

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

posted @   Little09  阅读(51)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示