uestc1135邱老师看电影【概率dp】
来源:互联网 发布:学生成绩管理网站php 编辑:程序博客网 时间:2024/04/28 19:05
邱老师看电影
Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
一天邱老师心血来潮想去看电影,但是邱老师的妹子想去逛街,他们谁也没有办法说服对方,于是准备来玩一个游戏来决定听谁的。
邱老师找来w只白鼠和b只黑鼠,邱老师和妹子轮流从袋子里面抓老鼠,谁先抓到白色老鼠谁就赢。
但是有酱神在旁边捣乱,邱老师每抓一只老鼠出来,酱神就偷偷的也从里面抓一只出来,这3个人抓出来的老鼠都是随机的。
如果袋子里没有白老鼠,且之前没有人拿到白老鼠的时候,邱老师胜。
为了体现绅士精神,邱老师让妹子先抓,那么妹子赢的概率是多少呐?
Input
只有两个数字 w和b w<=1000 b<=1000
Output
输出妹子赢的概率 保留9位小数
Sample input and output
1 3
0.500000000
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<cmath>#include<list>#include<vector>#include<queue>using namespace std;double dp[1010][1010];double dfs(int w,int b){ if(w==0) return 0; if(b==0&&w!=0) return 1; if(dp[w][b]>=0) return dp[w][b]; dp[w][b]=w*1.0/(w+b); if(b>=2){//要想在下一次取胜则本次学妹应该拿走一个黑鼠邱也必须拿走一个白鼠酱神可以任意拿走一个白鼠或一个黑鼠 double tb=b*1.0/(w+b)*(b-1)*1.0/(w+b-1); if(b>=3) dp[w][b]+=tb*dfs(w,b-3)*(b-2)*1.0/(w+b-2);//酱神拿走黒鼠 if(w>=1) dp[w][b]+=tb*dfs(w-1,b-2)*(w*1.0)/(w+b-2);//酱神拿走白鼠 } return dp[w][b];}int main(){ int w,b; scanf("%d%d",&w,&b); memset(dp,-1,sizeof(dp)); printf("%.9f\n",dfs(w,b)); return 0;}
0 0
- uestc1135邱老师看电影【概率dp】
- CDOJ 1135 邱老师看电影 概率dp
- CDOJ 1135 邱老师看电影 概率dp
- 概率dp
- ##概率dp##
- 概率dp
- 概率dp
- 概率dp
- 概率dp
- 概率dp
- 概率dp
- 概率dp
- 概率dp
- 概率DP
- 概率DP
- 概率dp
- 概率dp
- 看电影
- 图示经典算法--快速排序
- 一次意外的ioctl调用错误—论不同版本内核的ioctl函数实现
- N
- 自学
- Trick(十六)—— 随机数的生成
- uestc1135邱老师看电影【概率dp】
- Java多线程详解
- leetcode——189——Rotate Array
- HDU 4465 快速全排列
- HDU 4405 Aeroplane chess(概率DP)
- tinyos之 fan out( but there is no combine function specified for ***)
- 代码注释
- Java中java.util.Date与java.sql.Date等之间的转换
- 第5周项目1:三角形类雏形(3)