Processing math: 100%

Codeforces Round #688(Div 2) D. Checkpoints

题目链接:https://codeforces.com/contest/1453/problem/D

思路

第一步,先推导1,0,0,……,0,就是1后面跟了n-1个0的时候
所需要的期望步数

封闭式推导

fn代表从n关开始直接通关需要的步数的期望
n为1的情况,即就只有一个1
f1=12×1+12×(f1+1)
整理得f1=2
第一关时,你有一半的概率通关,有一半的概率回到自身重新开始
n为2的情况,1,0
f1=12×(f1+1)+12×(f2+1)
f2=12×1+12×(f1+1)
整理得f1=6
第一关时,你有一半的概率到达第二关,有一半的概率回到自身重新开始
第二关时,你有一半的概率通关,有一半的概率回到第一关重新开始
这样我们就可以进行归纳总结
把每个式子化简一下
f1=12f1+12f2+1
f2=12f1+12f3+1
f3=12f1+12f4+1
……
fi=12f1+12fi+1+1
……
fn=12f1+1
然后自己整理一下,就是两个等比数列的和
就得到了f1的封闭式
对于任意情况的n时,f1=2n+12

思路推进

推导出1,……,0,0的期望公式之后,我们如果再后面继续添加1,0,……,0这样一个序列
那么他的期望是直接相加的,因为他是一个复活点(检查点),跟你前面的序列一点关系都没有
所以你无论怎么增加都是一个2的倍数,这样也就得到奇数的时候是无解的

代码实现

posted @   幽灵轩  阅读(347)  评论(4编辑  收藏  举报
编辑推荐:
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
阅读排行:
· 对象命名为何需要避免'-er'和'-or'后缀
· JDK 24 发布,新特性解读!
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· SQL Server如何跟踪自动统计信息更新?
点击右上角即可分享
微信分享提示