换根DP好题
设表示只考虑及其子树的时候,通电的概率
有
化简为
其中是的儿子,表示这条边的概率
解释一下:分两种情况,
若自己亮了,那么样本空间剩下的边和点随便是什么状态都可以
若自己没亮,那么必须要至少有一个儿子亮了且这条边一定能够通电。我们考虑这种情况的反面,对任意一个儿子,它不亮的概率是,亮了但是边不通电的概率是,两者加起来即可。再将上述结果累乘就是反面的概率
我们再设表示的父亲在不考虑及其子树的情况下通电的情况,表示的父亲
有
,其中是的儿子
情况讨论是类似的,想一下这个公式怎么来的
注意求和的过程中,我们是用整体的累积除以某一个概率来优化的,但是这个概率是可能为的,一定要加以判断
然后设表示通电的概率,有
,其中是的父亲
解释一下:最终通电要么是由于子树的原因,要么子树没有能够供电,然后父亲来供电
然后可以看一下这篇题解
注意这篇题解,设置的状态就是没有通电,这样其实跟我们上面的推导本质是一样的,但是肯定更加简洁。所以以后遇到考虑反面的情况,不妨直接按照反面设置状态
然后还要特别注意一个点,这篇题解设是的父亲没有电传到的概率,而不是父亲不考虑这棵子树被通电的考虑,这两个是完全不同的
update 2024.5.4
其实最好理解的还是这种操作
将三种状态(自身通电,通过其子树通电,通过其父亲通电)分开考虑
第一种不说了
第二种,设表示通过其子树供电的概率,有,其中表示自身通电的概率,表示这条边的长度
第三种,设表示通过其父亲供电的概率,有
最后的见代码就好了
因为每个样本点都要考虑整体嘛,所以DP的时候也考虑整体
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构