思路

第一步,先推导1,0,0,……,0,就是1后面跟了n-1个0的时候

所需要的期望步数

封闭式推导

\(f_n\)代表从n关开始直接通关需要的步数的期望

n为1的情况,即就只有一个1

\(f_1=\cfrac{1}{2} \times 1+\cfrac{1}{2} \times (f_1+1)\)

整理得\(f_1=2\)

第一关时,你有一半的概率通关,有一半的概率回到自身重新开始

n为2的情况,1,0

\(f_1=\cfrac{1}{2} \times 1+\cfrac{1}{2} \times (f_2+1)\)

\(f_2=\cfrac{1}{2} \times 1+\cfrac{1}{2} \times (f_1+1)\)

整理得\(f_1=6\)

第一关时,你有一半的概率到达第二关,有一半的概率回到自身重新开始

第二关时,你有一半的概率通关,有一半的概率回到第一关重新开始

这样我们就可以进行归纳总结

把每个式子化简一下

\(f_1=\cfrac{1}{2} f_1+\cfrac{1}{2} f_2+1\)

\(f_2=\cfrac{1}{2} f_1+\cfrac{1}{2} f_3+1\)

\(f_3=\cfrac{1}{2} f_1+\cfrac{1}{2} f_4+1\)

……

\(f_i=\cfrac{1}{2} f_1+\cfrac{1}{2} f_{i+1}+1\)

……

\(f_n=\cfrac{1}{2} f_1+1\)

然后自己整理一下,就是两个等比数列的和

就得到了\(f_1\)的封闭式

对于任意情况的n时,\(f_1=2^{n+1}-2\)

思路推进

推导出1,……,0,0的期望公式之后,我们如果再后面继续添加1,0,……,0这样一个序列

那么他的期望是直接相加的,因为他是一个复活点(检查点),跟你前面的序列一点关系都没有

所以你无论怎么增加都是一个2的倍数,这样也就得到奇数的时候是无解的

代码实现

Codeforces Round #688(Div 2) D. Checkpoints的更多相关文章

  1. Codeforces Round #688 (Div. 2)

    A. Cancel the Trains 题意:给定两个数组,找出这两个数组中有多少重复元素,然后输出 思路:直接找 代码: 1 #include<iostream> 2 #include ...

  2. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

  3. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  4. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  5. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  6. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

  7. Codeforces Round #262 (Div. 2) 1003

    Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...

  8. Codeforces Round #262 (Div. 2) 1004

    Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...

  9. Codeforces Round #371 (Div. 1)

    A: 题目大意: 在一个multiset中要求支持3种操作: 1.增加一个数 2.删去一个数 3.给出一个01序列,问multiset中有多少这样的数,把它的十进制表示中的奇数改成1,偶数改成0后和给 ...

随机推荐

  1. vue API 知识点(1)---全局 API 总结

    1.Vue.extend(options) 构造器,创建一个 子类 .参数是一个包含组件选项的对象 data 选项是特例,需要注意 在 Vue.extend() 中它必须是一个函数, <div ...

  2. SQL2005数据库可疑的解决方法

    sqlserver数据库标注为可疑的解决办法 一般引起可疑的原因是突然断电,服务器死机,强制关机导致正在运行的数据库文件损坏,需要进行修复.方法一:USE MASTER GOSP_CONFIGURE ...

  3. Java线程状态及切换

    Java线程状态及切换 一.什么是Java线程状态 在Java程序中,用于描述Java线程的六种状态: 新建(NEW):当前线程,刚刚新建出来,尚未启动. 运行(RUNNABLE):当前线程,处于竞争 ...

  4. 调试HotSpot源代码(配视频)

    本文将详细介绍在Ubuntu16.04 LTS上对OpenJDK8进行编译,为了方便大家快速搭建起OpenJDK8的调试开发环境,我还录制了对应的视频放到了B站上,大家可以参考. 视频地址:https ...

  5. ELF文件格式内容

    在计算机科学中,是一种用于二进制文件.可执行文件.目标代码.共享库和核心转储格式文件.   ELF文件组成部分 ELF文件由4部分组成,分别是ELF头(ELF header).程序头表(Program ...

  6. android开发导包升级到androidx踩坑记录【转载】

    最近一直在做安卓开发,奈何手中的资料比较老,资料上的一些Import经常没有,十分让人头疼. 感谢简书上的[张晴天天天天天]做的整理. 在这里也记录一下备用. 升级Android Studio后,在 ...

  7. Nacos 多环境配置

    本文探讨Nacos作为配置中心,如何实现不同环境(开发.测试.灰度.正式)的配置管理问题 就像Maven用groupId.artifactId.version三者来定位jar包在仓库中的位置一样,Na ...

  8. Linux上Mysql数据库 用户权限控制

    Linux安装mysql 点我直达 Mysql限制root用户ip地址登录 修改mysql库里边的user表: update mysql.user set host='localhost' where ...

  9. 理解 ASP.NET Core: 处理管道

    理解 ASP.NET Core 处理管道 在 ASP.NET Core 的管道处理部分,实现思想已经不是传统的面向对象模式,而是切换到了函数式编程模式.这导致代码的逻辑大大简化,但是,对于熟悉面向对象 ...

  10. Java 添加、读取、删除Excel中的图表趋势线

    本文以Java示例介绍如何在Excel中添加趋势线,以及读取趋势线公式.通过文中的方法可支持添加6种不同类型的趋势线,包括Linear.Exponential.Logarithmic.Moving A ...