AGC056E-Cheese【dp】
0|1前言
奶酪可能会长腿,但绝对不会变质
_ _,_ _ _ _ _ _ _
1|0正题
题目链接:https://atcoder.jp/contests/agc056/tasks/agc056_e
1|1题目大意
有一个长度为的环,第位置上各有一只老鼠。
然后进行以下操作次:
第个位置有的概率被选择(选择一个),然后在这个位置上放一个奶酪,这个奶酪会顺时针跑,跑到一个老鼠的位置时有的概率被吃掉,老鼠如果吃过奶酪就会离开。
求每只老鼠被留到最后的概率。
1|2解题思路
考虑第只老鼠留到最后的概率,因为无论是哪只奶酪吃什么老鼠都是一样的,所以我们可以考虑开始时就将所有的奶酪放下来,然后让它们一起绕着环走。
同样的,奶酪的移动顺序也是无关紧要的,所以我们可以考虑让所有的奶酪先绕道第只老鼠的面前然后一起统计。
那么先考虑,设表示现在已经放下的奶酪都已经走到了位置处,然后已经放下了个奶酪,已经有个被老鼠吃了。
那么每次的转移分成两部分,第一部分是放奶酪,枚举这个位置放置了个奶酪,需要注意的是除了概率以外因为这个方案是涉及可重排列的,所以还需要乘上一个。
第二部分是吃奶酪,因为每只奶酪只会吃一个老鼠,所以统计没有这些奶酪都没有被吃的概率,很方便转移。
那么假设目前有个奶酪走到了第只老鼠前,那么说明前面还剩下只老鼠没有被吃,那么考虑这种情况下第只老鼠被留到最后的概率。
考虑一个神必的证明方法,我们考虑绕一圈绕到第只老鼠处还剩下个奶酪,然后考虑和之间被留到最后的概率:
- 如果和都吃到了,我们显然得不出两个的概率关系。
- 如果和都没被吃到,我们也得不出来,考虑下一轮。
- 如果吃了并且没吃,概率是
- 如果没吃并且吃了,概率是
那么记表示留到最后的概率,就有
然后又因为,所以有,那么我们要求的就是
然后这样是求第只老鼠的,改一下其他的就好了。
时间复杂度:
1|3code
__EOF__

本文链接:https://www.cnblogs.com/QuantAsk/p/16087753.html
关于博主:退役OIer,GD划水选手
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2021-04-01 2020牛客NOIP赛前集训营-提高组(第三场)C-牛半仙的妹子Tree【虚树,最短路】
2021-04-01 牛客练习赛71E-神奇的迷宫【点分治,NTT】
2021-04-01 NOI.AC#2007-light【根号分治】
2021-04-01 CF1370F2-The Hidden Pair(Hard Version)【交互题,二分】
2021-04-01 P3335-[ZJOI2013]蚂蚁寻路【dp】