搜索

[数学记录]Luogu4284 概率充电器


发布时间: 2022-11-24 21:53:00    浏览次数:53 次

NOIp 前随机一道题来补。

NOIp2022 rp++

题意:

给定一棵树,每个点 \(p_i\) 概率被直接激活,每条边 \(p_{\{u,v\}}\) 概率被激活,被激活的点可以顺着被激活的边激活其它点,求所有点被激活的概率和。

\(n \leq 5 \cdot 10^5\),保留小数输出。

这种树上题也只能是树形 dp 了,现在思考怎么计算这个贡献。

一个点能通过三种方式被激活:自己本身已被激活、通过子节点被激活、通过被激活的父节点被激活。

设一个点被激活的概率是 \(q_i\),则它被直接激活的概率是 \(p_i\),被子节点激活的概率容易通过递推算出,具体转移为 \(q_u \gets q_v \ (1-q'_u) \ p_{\{u,v\}}\)

现在来看通过父节点被激活,那么首先要从父节点中去除 \(u\) 可能的贡献。

已知 \(q_{fa} = q'_{fa} + q_u \ (1-q'_{fa}) \ p_{\{u,v\}}\),则可以解出 \(q'_{fa} = \dfrac{q_{fa}-q_u p_{\{u,v\}}}{1-q_u p_{\{u,v\}}}\)。这就是父节点被激活且不通过 \(u\) 的概率。用这个概率进行像上一个转移一样的转移即可。

拜谢 第二篇题解,思路讲得挺顺畅的,也给出了一个比第一篇题解好理解的去当前节点父节点概率的算法。

补完了。rp++;

其实感觉真不是特别难,最多概率的运算难一些,但是每一步都很自然。

学到了 up and down 的技巧,很开心!

免责声明 [数学记录]Luogu4284 概率充电器,资源类别:文本, 浏览次数:53 次, 文件大小:-- , 由本站蜘蛛搜索收录2022-11-24 09:53:00。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://www.cnblogs.com/purplevine/p/16923572.html