换教室

虽然我们知道,数学期望DP很多时候是要靠感性理解的

但是这道题目显然可以列出所有样本空间去考虑,在这种情况下我们就严谨一点

我们先设f[i][j]表示前i个课程申请了j个课程的最小期望路径

我们先考虑第i个课程不申请,那么j个课程全部都申请到了前i1个课程里面

我们要想转移到f[i][j],就必须要知道在第i1的课程的时候我们在哪个教室

如果我们第i1个课程没申请,那么可以通过样本空间知道这个时候的概率是1

如果我们第i1个课程申请了,那么前面的样本空间又要被分成两批,一批的终点是a[i1]教室,概率是1p[i1];一批的终点是b[i1]教室,概率是p[i1];然后再用对应的概率去乘以对应的路径

但是你就会发现这里就转移不走了:我们目前的状态没办法分清这么多信息

所以我们加维,从上述分析过程中不难得到,设f[i][j][0/1]表示前i个课程申请了j个课程且第i个课程是否申请的最小期望路径

然后就可以推走了

update 2024.5.4

对这道题目做一个更精确的阐释。

这里其实没有一个具体的样本空间。由于题目要求的是一次性申请,我们在递推f[i][j][0/1]的时候,相当于是对于前i个课程,我们有若干种一次性申请的方式,然后每一种方式都有自己的样本空间,然后通过自己的样本空间可以算出来自己的期望路径,所有不同申请方式算出来的期望路径取最小值就是f[i][j][0/1](所以这里顺推的正确性可以保证)

所以如果题目说的不是一次性申请,而是根据已经申请到的结果来申请(依次申请每个课程),那么我们的方程的状态就不是第i个课程是否申请了,而是第i个课程是否申请通过,此时状态就是条件概率了,需要倒推

也就是说条件概率就是根据已经发生了的情况做决策

posted @   最爱丁珰  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示