lightoj 1408 Batting Practice (概率问题,求期望,推公式)
题意:一个人若连续进k1个球或连续不进k2个球,游戏结束,给出这个人不进球的概率p(注意:是不进球!!!),求到游戏结束时这个投球个数的期望。
不进球概率为p,进概率 q=1-p。
设 f[i] 表示连续 i 次不进结束的期望,t[i]表示连续 i 次进球,距离结束的期望。显然,f[k2]=t[k1]=0;
f[i] = q*(f[i+1]+1)+p*(1+t[1]) , t[i] = p*(t[i+1]+1)+q*(1+f[1]).
答案是 p*t[1]+q*f[1]+1.
然后就算t[1],f[1]
将t[1],f[1]都移到等式左边,等式右边是其余的项,然后左右都乘以q/p^i(i=0,1,...k2-2/k1-2),总共k2-1/k1-1项。
消除中间项,只剩f[1],t[1]。然后就求解二元一次方程
#include <iostream>
#include <cmath>
#include <string.h>
#include <algorithm>
#include <cstdio> using namespace std;
double p,q; //击不中的概率为p,击中的概率为q
int k1,k2; //连续击中k1次,连续不击中k2次 int main()
{
int t;
int cases=;
scanf("%d",&t);
while(t--){
scanf("%lf%d%d",&p,&k1,&k2);
//不加下面的两个if,为WA
if(p>-1e-)
{
//未击中的概率近似为1
printf("Case %d: %.5lf\n",++cases,1.0*k2);
continue;
}
else if(p<1e-)
{
//未击中的概率近似为0
printf("Case %d: %.5lf\n",++cases,1.0*k1);
continue;
}
q=-p;
double a1=-pow(q,k1-),b1=a1/(-q);
double a2=-pow(p,k2-),b2=a2/(-p);
double t1=(a1*b2+b1)/(-a1*a2),f1=a2*t1+b2;
printf("Case %d: %.5lf\n",++cases,p*f1+q*t1+);
}
return ;
}
lightoj 1408 Batting Practice (概率问题,求期望,推公式)的更多相关文章
- lightoj 1408 Batting Practice
题意:一个人若连续进k1个球或连续不进k2个球,游戏结束,给出这个人进球的概率p,求到游戏结束时这个投球个数的期望. 进球概率为p,不进概率 q=1-p 设 f[i] 表示连续 i 次不进距离连续k2 ...
- HDU3853-LOOPS(概率DP求期望)
LOOPS Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others) Total Su ...
- LightOJ 1030 【概率DP求期望】
借鉴自:https://www.cnblogs.com/keyboarder-zsq/p/6216762.html 题意:n个格子,每个格子有一个值.从1开始,每次扔6个面的骰子,扔出几点就往前几步, ...
- HDU 5245 Joyful(概率题求期望)
D - Joyful Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit S ...
- POJ2096 Collecting Bugs(概率DP,求期望)
Collecting Bugs Ivan is fond of collecting. Unlike other people who collect post stamps, coins or ot ...
- HDU-3853 LOOPS(概率DP求期望)
题目大意:在nxm的方格中,从(1,1)走到(n,m).每次只能在原地不动.向右走一格.向下走一格,概率分别为p1(i,j),p2(i,j),p3(i,j).求行走次数的期望. 题目分析:状态转移方程 ...
- hdu 4405 Aeroplane chess(简单概率dp 求期望)
Aeroplane chess Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- Poj 2096 Collecting Bugs (概率DP求期望)
C - Collecting Bugs Time Limit:10000MS Memory Limit:64000KB 64bit IO Format:%I64d & %I64 ...
- HDU 3853 LOOP (概率DP求期望)
D - LOOPS Time Limit:5000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit St ...
随机推荐
- sharepoint 浏览页面导航不正确
问题是这样的: sharepoint网站上建立一个二级站点,然后在网站中创建几个页面.当浏览二级网站的页面的时候,顶部导航的位置总是在首页的地方,而不是我的二级站点的导航位置. 解决方法: 转到网站集 ...
- P1297: [SCOI2009]迷路
首先知道,如果没有路径长度的要求,且给定的邻接矩阵只有0和1表示通与不通的话,从S->E走N次的方案数就是这个矩阵自乘N次后的(S,E)的数值.这样的话只需要快速幂+矩阵乘法即可过关. (转载请 ...
- 浅谈ERP系统实施后如何完善企业内部控制制度建设
ERP与企业内部控制制度,前者提升企业的管理水平,后者为企业发展保驾护航,两项工作都是企业各项工作的重中之重. ERP是企业资源规划Enterprise Resource Planning的缩写.企业 ...
- Daily Scrum1--团队项目分工及估计时间
团队项目分工及估计时间 PM(黄剑锟): 任务一:监督进度,将每一天完成的任务总结,在各个部分进行协调与帮助.(贯穿整个项目周期) 任务二:提高搜索反应时间,优化搜索算法.(估计时间8小时) 程序设计 ...
- 课堂练习:给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。
题目 1 给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数. 2 要求: (1) 写一个函数 f(N) ,返回1 到 N 之间出现的“1”的个数.例如 f(12) ...
- C++(MFC)编程中遇到的的一些函数
memset void memset( void dest, int c, size_t count ); dest: Pointer to destination c: Character to s ...
- 如何在Win10下设置图片的浏览方式为windows照片查看器
小编前些天刚装好了win10,一阵心奋啊,今天刚打开一个图片,却发现图片的默认打开方式是window应用商店的app, 这让我觉得特别不舒服,没有之前windows自带的照片查看器好用,后来我本想进入 ...
- 项目中用到的js日期函数
<script type="text/javascript"> //替换字符串 function Replace(str, from, to) { ...
- android开发 两张bitmap图片合成一张图片
场景:对android4.4解码gif(解码文章见前面一篇)后的图片进行每帧处理,android4.3 解码出来的每帧都很完整,但是到android4.4版本就不完整了,每帧都是在第一帧的基础上把被改 ...
- ffmpeg 命令
1.保存文件: ffmpeg -i rtsp://admin:12345@172.29.61.108/Streaming/Channels/1 -vcodec copy -acodec libvo_a ...