XTU 1193 Lucky Wheel 概率递推
来源:互联网 发布:艾弗森数据 编辑:程序博客网 时间:2024/04/29 01:32
题目地址:http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1193
题目描述
Alice在玩Bob的幸运大转盘,转盘如图。每次转完有8种结果,得到每种结果的概率是一样的。Bob说只要Alice能收集够x个一等奖和y二等奖就请他吃大餐。但是Alice每转一个要给Bob一块钱。现在Alice请你帮他计算一下他要转出x个一等奖和y个二等奖一共要转的次数的期望。
输入
输入包含不超过10000组数据。每组数据占一行,有两个整数x,y,(0 < x,y < 1000)。直到文件结束。
输出
输出一行,一个数表示Alice要转次数的期望,结果保留6位小数。
样例输入
0 11 01 12 6
样例输出
8.0000008.00000012.00000048.625000
这儿是湘潭大学2014年4月12日月赛的一道题。
题目意思狠明确,要求求期望。
当时是最后30秒过的这题,所以印象很神。
思路大概就是你有x个二等奖y个一等奖要拿,那么
1)当x或者y有一个为0时,那么就转8次会x-1或y-1
2)当x和y均不为0时,那么转4次就会x-1或y-1
那么很明显,当a[x][y]是由a[x-1][y]和a[x][y-1]决定的
下面看代码:
#include <stdio.h>#include <fstream>#include <string.h>#include <iostream>#include <math.h>#include <algorithm>#include <vector>#include <map>#define PI acos(-1.0)#define M 1000005 //10^6#define eps 1e-8#define moo 1000000007using namespace std;double a[5000][5000];int main(){ int i,j,d; a[0][0]=0; for(d=1;d<=2000;d++) //用d标记层数,d=i+j,即总共需要拿多少奖。 { for(i=0;i<=d&&i<=1000;i++) { if(d-i<=1000) { j=d-i; if(i==0||j==0) { a[i][j]=i*8+j*8; //情况一 } else { a[i][j]=4+a[i][j-1]/2+a[i-1][j]/2; //因为一等奖二等奖概率相等,所以直接都乘50%,如果不等,那么分开乘就好。 } } } } while(scanf("%d%d",&i,&j)!=EOF) { printf("%lf\n",a[i][j]); }}
0 0
- XTU 1193 Lucky Wheel 概率递推
- stone game (概率,递推)
- uva557 - Burger 概率递推
- CodeForces-630 C. Lucky Numbers【规律递推】
- hdu 5985 Lucky Coins (概率)
- 错排列的概率--递推
- UVA 11021 Tribbles 概率问题+递推
- UVA 557 - Burger(概率 递推)
- UVA 11021 - Tribles(概率递推)
- UVA 10288 - Coupons(概率递推)
- UVA - 11021 Tribles (递推+概率)
- UVA - 10288 Coupons (概率+递推)
- Uva 11021-Tribles(概率+递推)
- uva 11021 Tribles (概率,递推)
- UVa 11021 Tribbles(概率递推)
- UVA10288 - Coupons (概率+递推)
- [CSU 1833 Lab] 概率+递推
- BZOJ3450 Easy-概率与期望-递推
- Thread学习(一)
- 经典文章
- bootstrap 导航栏及所在位置
- gcc C语言中变量定义的位置问题
- create Scene using script
- XTU 1193 Lucky Wheel 概率递推
- MyEclipse10.6完美破解方法(图)
- 模板—判断两条线段是否相交
- Cocos2d-x 2.2.3 + Visual studio 2013 + python2.7.5开发环境搭建
- Aimer
- 二手机械设备存在环保缺陷
- SQL SERVER 2008 R2配置管理器出现“远程过程调用失败”【0x800706be】的解决办法
- 科目一准备开考了,今晚写日记
- 谷歌技术"三宝"之MapReduce