转的网上的解题报告http://hi.baidu.com/rpsproblem/blog/item/d2cbe67aa1d8b5fd0bd1875f.html,用于备战校赛
按照题目的意思,我们很容易推出公式:
f[i] = p*f[i-1] +
(1-p)*f[i-2];
f[i]表示到达位置i的概率(不是安全到达那些很复杂之类的概率,就只是简单的到达的概率),p为题目给的概率
由于有的原因,就不能直接算了。
这里我用
x[i]表示第i颗的位置
但如果把整个过程按照来分阶段,起点为x[i-1]+1,终点为x[i],这样每个阶段就只有终点有了(这就很容易算可达概率了)
所以我们可先算在阶段
i
,从起点x[i-1]+1到x[i]的概率qi,这个概率就表示踩到x[i+1]的概率了,那么1-qi就表示这一阶段安全的概率了(我有点不是很明白的就是它具体跳到哪里去了,不过如果按照这样划分阶段的模型,很容易知道结果是正确的)
所以把每个阶段安全可达的概率乘起来就是总的概率了(1-q1)(1-q2)...(1-qn)
这里需要用矩阵乘法快速幂来加速
观察公式
f[i]
= p*f[i-1] + (1-p)*f[i-2];
跟Fibonacci数列很像,可用poj3070的方法来构造
| p 1
|
| 1- p 0 |
然后就可用快速幂加速了!
分享到:
相关推荐
POJ第1861题源码 POJ第1861题源码 POJ第1861题源码
poj2009离线题库 poj2009离线题库
北京大学在线测评网站POJ第1200题的解答,已经AC通过
poj2009离线题库 poj2009离线题库
poj部分水题代码描述,为初学者提供一些必要的基础
poj上面的300道AC题,c++源码,自己写的不会有任何问题。
POJ ACM一些题的代码和总结。还有POJ用到JAVA的简单介绍。
POJ推荐50题 练练不妨 网上看到就弄了来。
初学acmer必练题,包括图论,动态规划,和数论的基础题
poj训练 c语言poj训练 西工大 poj 100题。
北大POJ第1005题答案(C语言)
POJ题目源码 共221题 含源码,题目和简单的分类
北京大学Online judge 第2251题 POJ2251
北大POJ水题整合包 解题报告+AC代码
组合数学 ACM 和,POJ里用到组合数学的题目
POJ各题算法分类和题目推荐 ACM必看 POJ各题算法分类和题目推荐 ACM必看 POJ各题算法分类和题目推荐 ACM必看
北大 POJ的水题解答C++版,请合理使用
本人在POJ上第1922题用C++做的程序设计,可供参考。
POJ100题详细解题报告
本人在poj上用C++做的第1102题,可供参考。