关于期望dp的一些个人理解
本人概率期望菜的一批,写一下博客来加深印象
期望的基本定义
首先期望本身是一个加权平均值,表示把每种情况按照概率发生后总和除以总的发生次数,这是定义法,然后合并一下就是:
其中
表示事件 发生的概率,满足
关于 期望dp
还是按照dp定义状态,但是在每个阶段的分析方法与传统dp并不相同,基本思路如下:
对于当前的状态,能由哪些状态转移过来,假设能转移过来的状态的集合为
,也就是对于 , 状态能对当前状态产生贡献。那么其产生的贡献就是 状态 转移到 当前状态 的权值乘以由 状态转移过来的概率,
这套转移系统合法当且仅当对于,满足
但是无论怎么样都是用期望来推期望
关于 dp转移的方向
这里应该是我理解的不错的一点,首先状态的转移是无向的,唯一的方向就是由已知状态推向未知状态,平常题面中给定的所谓的 “一个状态到另外一个状态” 其实是状态之间的关系,无论是顺推逆推都是可以的。
常说dp有两种实现方式:递推 与 记忆化递归,很多人都使用前者,因为的确好写,但是前者其实并没有后者理解得更加直观,后者反而就是符合刚才对于状态转移最基本的定义:对于一个当前的未知状态,询问可以转移过来的状态集合
并遍历其中的状态元素 ,然后统计可行的转移状态对于当前状态产生的贡献。
若
集合仍然未知,那么继续递归下去。完成统计后的记忆化其实就是把当前状态从未知集合放入已知集合中,从而保证每个状态最终一定属于已知集合
一些经典的 期望dp状态
①线性生物
表示从 转移到 所需要的期望步数
②绿豆蛙表示从出发点走到 节点的期望(记得转移的时候去掉概率)
③纯粹容器 若(即第i种情况的贡献是i),那么
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效