BNUOJ--29140 Taiko taiko【我又发懒==】
来源:互联网 发布:开票软件金税盘版价格 编辑:程序博客网 时间:2024/06/05 03:51
F. Taiko taiko
拆拆超级喜欢太鼓达人(赛后大家可自行百度规则),玩久了也对积分规则产生了兴趣,理论上连击数越多,分数增加的越快,而且还配合着击打准确度有相应的计算规则,拆拆觉得这些规则太复杂了,于是把规则自行简化了下:
对于一段击打序列,我们假设Y为打中,N为未打中 (没有良可之分了)
我们视连续的n次击中为n连击 相应的分数为 1+2+3+。。。+n
例如序列YNNYYYNYN的总分数为1+1+2+3+1=8
当然 击中是有概率的 我们假定概率始终为P(0<=P<=1)拆拆的击中概率很高的恩恩=w=
于是现在拆拆想知道对于长度为L的序列 击中概率为P时 获得积分的期望是多少
Input
一个整数T(表示T组数据)
接下来的T组数据
接下来T行 每行一个整数L 一个浮点数P
数据范围
1<=T<=1000
1<=L<=1000
0<=P<=1
Output
对于每组数据输出一行1个6位小数 即题目描述的期望
Sample Input
22 0.93 0.5
Sample Output
2.6100002.125000
好吧,我又发懒,一看到化简的题目就自动死机了。
经过N次化简,我终于把它化到最简,然后规律就一目了然。
是这样的:
n=1时 得分为1 得分为0 如: L N
概率 p (1-p)
n=2时,得分为3 得分为1 得分为0 如: LL LN NL NN
概率 p*p P*(1-p)*2 (1-p)*(1-p)
n=3时 得分为6 得分为3 得分为2 得分为1 得分为0 如: LLL LLN NLL LNL LNN NLN NNL NNN
概率 p*p*p p*p*(1-p) *2 P*(1-p)*p p*(1-p)*(1-p) (1-p)* (1-p)* (1-p)
注:n=2时,期望计算方法为 3*p*p + 1*P*(1-p)*2 + 0* (1-p)*(1-p)
然后我们用高中学过的方法计算各自的期望并化简
n=1时 期望=p
n=2时 期望=p*p+2*p
n=3时 期望=p*p*p+2*p*p+3*p
注:n=2时,期望计算方法为 3*p*p + 1*P*(1-p)*2 + 0* (1-p)*(1-p)
代码如下
#include<stdio.h>int main(){ int t; scanf("%d",&t); while(t--) { double n,p; scanf("%lf%lf",&n,&p); double sum=p; double k; for(double i=2;i<=n;i++) {k=sum; sum=(k+i)*p; } printf("%lf\n",sum); }}
- BNUOJ--29140 Taiko taiko【我又发懒==】
- BNUOJ--29140 Taiko taiko
- bunoj 29140 Taiko taiko
- Taiko taiko
- BNUOJ 35905 又见LKity KMP
- “王者”再临==希望之“邱”==又来了!?嗯?我为什么会说“又”这个字!?
- BNUOJ 27935 我爱背单词 (加强版) (FFT)
- BNUOJ 27935 我爱背单词(FFT)
- 拔核蹈卑谆品辜又谭掀宗又柏俜臃markdowncontent=
- Dragons https://www.bnuoj.com/v3/problem_show.php?pid=26407
- 早上线稿= =练习上色的时候我又崩了= =
- 我又回来了!
- 我又来啦!~
- 我又回来了!
- 我又怎么了
- 我又作茧自缚了
- 我又回来了。
- 我又来了
- unix下管道编程
- Knockout中ViewModel与Model的互转
- php 获取最后插入数据的id
- Android布局文件layout.xml的一些属性值
- CAS 实现单点登录(SSO)简单实例demo(二)
- BNUOJ--29140 Taiko taiko【我又发懒==】
- C语言 指针及动态内存分配
- Eclipse maven 导入父模块和子模块
- pthread_create导致的程序崩溃
- ImageView宽高的设置与获取
- VS2010如何创建静态链接库和动态链接库
- 设计模式——单件(单例)模式
- Android 带你从源码的角度解析Scroller的滚动实现原理
- 正则表达式学习