如果正着求 , 需要记录从起点到当前点的概率 ,这个概率是会传递的。所以考虑倒着求 ,则
f[x]=(val(x,y)+f[y])/k
期望DP,多倒序求解。 这一题如果正着求会掉到0所以考虑倒序。
f[n]=0f[i]=1+p[i+1]∗f[0]+(1−p[i+1])∗f[i+1]
共得到从0到n,n+1个方程和未知数,可以求解。
将上述式子一波带入和化简后得到
f[0]=1+(1−p[1])+(1−p[1])∗(1−p[2])+...+(1−p[1])∗(1−p[2])∗...∗(1−p[n−1])+f[0]∗(p[1]+(1−p[1])∗p[2]+...+(1−p[1])∗(1−p[2])∗...∗(1−p[n−1])∗p[n])
记为
f[0]=A+B∗f[0]
故
f[0]%p=A1−B%p
由费马小定理得
f[0]=A∗(1−B)p−2%p
当前状态为s ,往i的位置砸
如果砸向左边
a=s&∼(1<<(i+1))
如果砸向中间
b=s&∼(1<<i)
如果砸向右边
c=s&∼(1<<(i−1))
动态规划方程
f[s]=1+f[a]/3+f[b]/3+f[c]/3
可以使用记忆化搜索实现
我们设f[i]表示到第i个的数学期望,len表示当前连续0的个数。当前有3个状态。
如果为o
f[i]=f[i−1]+(len+1)2−len2=f[i−1]+2∗len+1len=len+1
如果为x
f[i]=f[i−1]len=0
如果为?
f[i]=12∗(f[i−1]+2∗len+1+f[i−1])=f[i−1]+len+0.5len=12∗(len+1+0)=12∗(len+1)
对于?情况的证明:有12的概率是o,也有12的概率是x,所以f有12的概率长度加1,也有12的概率长度不变;len有12的概率长度加1,也有12的概率长度不变,注意len和f都记录的数学期望。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话