题目连接:https://codeforces.com/contest/1453/problem/Dspa
第一步,先推导1,0,0,……,0,就是1后面跟了n-1个0的时候
所须要的指望步数code
\(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(f_1+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\)get
推导出1,……,0,0的指望公式以后,咱们若是再后面继续添加1,0,……,0这样一个序列
那么他的指望是直接相加的,由于他是一个复活点(检查点),跟你前面的序列一点关系都没有
因此你不管怎么增长都是一个2的倍数,这样也就获得奇数的时候是无解的class