一道期望dp
设 dpi 表示从 i 走到 n+1 的期望步数。
我们可以设 ki 表示 i 的出边条数,ei,j 表示 i 的第 j 条返祖边的终点,那么不难得到:
但是发现这玩意是没法转移的,因为 dpi 的值依赖于 dpi+1 的值,于是考虑把 dpi+1 移到一边:
然后由于期望的线性性,x 到 y 的期望步数 Ex,y 一定可以表示为 ∑i=xy−1Ei,i+1,设 ai=Ei,i+1,所以实质上 dp 数组是 a 的后缀合,而思考这个dp之所以不能转移是因为我们只能从 i=1 开始dp,但更新却应当是向 i=1 依次更新才对,所以这时只需将后缀和转化为前缀和即可。
那么设 b 是 a 的前缀数组,则 dpi=dp1−bi+1,此时的 i∈[1,n],但是那个 +1 我很不喜欢,于是我设 fi=bi+1,所以 dpi=dp1−fi,i∈[2,n+1]。
整理一下:
所以:
而 dpn+1=dp1−fn+1=0,所以最终答案即为 fn+1。
orz! 写全啊!
催。
看透人生了/kel
F盘有片吗
gzn走好!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术