Jellyfish and EVA

这道题目实在没有什么好的办法去描述状态空间,只能感性理解一下,等对概率的理解更深了再来吧。。。

发现这是一道概率DP,而且满足拓扑序,我们直接倒序转移就好了

fi表示从第i个点到第n个点的概率,我们发现当只有一条出边是非常好转移的,但是其他就不太行了

我们遇到这种情况,就从简单情形开始想起(接下来的情形我们都不考虑点的概率,也就是只考虑选择顺序的问题)

假设当前点u只有一条出边,终点是v1,那么有fu=fv1

假设当前点有两条出边,终点分别为v1,v2,我们不妨认为最优方案先选v1,那么第二个人有12的概率选择v1,有12的概率选择v2,当选择了v2之后两条出边都被销毁了,所以不可能达到终点,也就是说有fu=12fv1+120=12fv1(所以最优方案要求fv1>fv2

假设当前点有三条出边,终点分别为v1,v2,v3,我们不妨认为最优方案先选v1,那么第二个人有13的概率选择v1,此时有fu+=13fv1;有13的概率选择v2,那么接下来第一个人只能选择v3,然后第二个人也只能选择v3,也就有fu+=13fv3;同理,若第二个人选择了v3(概率为13),那么有fu+=13fv2.综上,fu=13fv1+13fv3+13fv2

假设当前点有四条出边,终点分别为v1,v2,v3,v4(我们不妨设fv2>fv3>fv4),我们不妨认为最优方案先选择v1,那么第二个人有14的概率选择v1,此时有fu+=14fv1;有14的概率选择v2,注意接下来第一个人要怎么选,这时的情形实际上是当前的点有两条出边的情形了,所以最优方案先选择v3(此时就是将v3当做只有两条出边的情形中的v1),所以有fu+=14(12fv3);同理,如果第二个人先选择的v3,有fu+=14(12fv2),如果第二个人先选择v4,有fu+=14(12fv2)。综上,fu=14fv1+14fv2+18fv3,我们此时有fv2>fv3>fv4,那么我们怎么选择v1fu最大呢?肯定是这么选:fv1>fv2>fv3>fv4(因为14是最大的系数)

然后以上过程可以拓展到更一般的情况

我们发现,当度数相同的时候,每个概率的系数一定是定的,所以我们就可以预处理这一部分系数,也就变成了Two Pirates - 2这道题目了

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