思路

第一步,先推导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. 【Kata Daily 190909】The Supermarket Queue(超市队列)

    题目: There is a queue for the self-checkout tills at the supermarket. Your task is write a function t ...

  2. Activit的心路历程:获取当前节点的上一节点【可能存在多个】的nodeId

    在我的开发任务中,突然给我提出了一个待办任务需要获取当前任务节点上以任务节点的表单信息,刚开始搞得我有点措手不及,后来仔细是靠后,灵感一下,直接操作流程的bpmn信息就可以获取到节点信息嘛,顺着这个思 ...

  3. Spring Cloud 纯干货,从入门到实战

    导读 之前写过一篇SpringCloud从入门到精通的点我直达,微服务基础知识点我直达,今天我们使用Spring Cloud模拟一个电商项目.分别有以下2个服务,商品.订单.下面我们开始叭 技术栈 S ...

  4. mac下docker安装php链接使用国产数据库驱动

    docker下配置php macos系统无法使用神通数据库,所以使用docker来安装php 第一步先安装php docker search php docker pull php:7.1-fpm d ...

  5. leetcode129valid-parentheses

    题目描述 给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列 括号必须以正确的顺序关闭,"()"和"()[] ...

  6. intelx86为何从0xFFFF0处执行

    第一条指令的地址 在用户按下计算机电源开关之后,CPU会自动的将其CS寄存器设定为0xFFFF,将其IP寄存器设定为0x0000.由于CS:IP指出了下一条指令的地址[1],因此CPU会跳到0xFFF ...

  7. mongo命令行操作

  8. 巧妙运用Camtasia制作爱豆的动感影集

    对于追星族来说,收集爱豆的图片.视频是日常必做的事情,而对于进阶型的追星族来说,为爱豆自制各种精美的视频.影集等,会让自己追星之路显得更为充实. 我们可以借助Camtasia教程录制软件为爱豆制作各种 ...

  9. 「LOJ 541」「LibreOJ NOIP Round #1」七曜圣贤

    description 题面很长,这里给出题目链接 solution 用队列维护扔掉的红茶,同时若后扔出的红茶比先扔出的红茶编号更小,那么先扔出的红茶不可能成为答案,所以可以用单调队列维护 故每次询问 ...

  10. mysql三种删除方式

    一般来说mysql有三种删除数据方式: 1. delete(常用) 2. truncate(慎用) 3. drop 以上三种方式都可以删除数据,但是使用场景是不同的. 从执行速度来说: drop &g ...