UESTC_邱老师看电影 2015 UESTC Training for Dynamic Programming<Problem F>
F - 邱老师看电影
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
Sample Input | Sample Output |
---|---|
|
|
解题报告:
f(i,j,k) -> i只白鼠,j只黑鼠,目前操作者是k号时妹纸赢的概率
0,妹
1,邱
2,酱
边界条件:
if (i == 0 && j == 0 )
return ans = 0;
if (j == 0)
{
if (k == 0 && i >= 1)
return ans = 1.0;
else if(k == 1 && i >=1)
return ans = 0.;
else if (k == 2 && i >= 2 )
return ans = 1.0;
return ans = 0.0;
}
if (i == 0)
return ans = 0.;
转移:
int next = (k + 1 ) % 3; //下一个操作的人
if (k == 0) // 妹纸操作
{
f(i,j,K) = ( i / (i+j) ) + dp(i,j-1, next) * ( j / (i+j) )
}
else if (k == 1) // 邱老师操作
{
f(i,j,k) = f(i,j-1,next) * (j / (i+j));
}
else // 酱老师操作
{
f(i,j,k) = f(i-1,j,next) * (i / (i+j) ) + f(i,j-1,next) * (j / (i+j))
}
- #include <iostream>
- #include <algorithm>
- #include <cstring>
- #include <cstdio>
- using namespace std;
- const int maxn = 1e3 + ;
- double f[maxn][maxn][];
- bool arrive[maxn][maxn][];
- double dp(int i,int j,int k)
- {
- if (arrive[i][j][k])
- return f[i][j][k];
- double & ans = f[i][j][k] = .;
- arrive[i][j][k] = true;
- if (i == && j == )
- return ans = .;
- if (j == )
- {
- if (k == && i >= )
- return ans = 1.0;
- else if(k == && i >=)
- return ans = .;
- else if (k == && i >= )
- return ans = 1.0;
- return ans = 0.0;
- }
- if (i == )
- return ans = .;
- int next = (k+) % ;
- if (k == )
- ans = (double)i / (double)(i+j) + dp(i,j-,next) * ((double)j/(double)(i+j));
- else if (k == )
- ans = dp(i,j-,next) * ((double)j/(i+j));
- else
- ans = dp(i-,j,next) * ( (double)i / (double)(i+j) ) + dp(i,j-,next) * ( (double)j / (double)(i+j) ) ;
- return ans;
- }
- int main(int argc,char *argv[])
- {
- int w,b;
- memset(arrive,false,sizeof(arrive));
- scanf("%d%d",&w,&b);
- printf("%.9lf\n",dp(w,b,));
- return ;
- }
UESTC_邱老师看电影 2015 UESTC Training for Dynamic Programming<Problem F>的更多相关文章
- UESTC_邱老师选妹子 2015 UESTC Training for Dynamic Programming<Problem H>
H - 邱老师选妹子 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submi ...
- UESTC_邱老师玩游戏 2015 UESTC Training for Dynamic Programming<Problem G>
G - 邱老师玩游戏 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submi ...
- UESTC_邱老师的脑残粉 2015 UESTC Training for Graph Theory<Problem D>
D - 邱老师的脑残粉 Time Limit: 12000/4000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Sub ...
- UESTC_男神的约会 2015 UESTC Training for Dynamic Programming<Problem J>
J - 男神的约会 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
- UESTC_酱神的旅行 2015 UESTC Training for Dynamic Programming<Problem M>
M - 酱神的旅行 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
- UESTC_酱神赏花 2015 UESTC Training for Dynamic Programming<Problem C>
C - 酱神赏花 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 262143/262143KB (Java/Others) Submi ...
- UESTC_男神的礼物 2015 UESTC Training for Dynamic Programming<Problem A>
A - 男神的礼物 Time Limit: 3000/3000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
- UESTC_邱老师选妹子(二) 2015 UESTC Training for Dynamic Programming<Problem I>
I - 邱老师选妹子(二) Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Su ...
- UESTC_邱老师降临小行星 2015 UESTC Training for Search Algorithm & String<Problem B>
B - 邱老师降临小行星 Time Limit: 10000/5000MS (Java/Others) Memory Limit: 65536/65535KB (Java/Others) Su ...
随机推荐
- 通过jstack定位在线运行java系统故障_案例1
问题描述: 在一个在线运行的java web系统中,会定时运行一个FTP上传的任务,结果有一天发现,文件正常生成后却没有上传. 问题初步分析: 1.查看日志文件 发现这个任务只打印了开始进入FTP处理 ...
- 图片延迟加载scrollLoading.js应用
<ul> <li><a href="http://news.qq.com/" target="_b ...
- 【POJ1581】A Contesting Decision(简单模拟)
没有什么弯路,直接模拟即可.水题. #include <iostream> #include <cstring> #include <cstdlib> #inclu ...
- 04747_Java语言程序设计(一)_第9章_输入和输出流
例9.1一个文件复制应用程序,将某个文件的内容全部复制到另一个文件. import java.io.*; public class Example9_1 { public static void ma ...
- ios 以NSObject为父类的各类间继承关系
- 安卓Menu键的问题
近期开发中有须要Menu键,结果发现了一个非常尴尬的问题.我的測试机上有Menu键.可是測试平板上没有,队友的測试机上竟然也没有Menu键.这着实有些尴尬... 上网谷歌之后才发现问题所在: 仅仅有在 ...
- nodejs 批处理运行 app.js
1.直接执行run.bat文件 以下的内容为批处理文件run.bat中的内容,批处理命令中NODE_PATH为Node.js的安装路径. 使用express 生成的项目.app.js为 ...
- 16. Linux 文件目录权限
# 文件参数 d:表示是一个目录-:表示这是一个普通的文件l: 表示这是一个符号链接文件,实际上它指向另一个文件b.c:分别表示区块设备和其他的外围设备,是特殊类型的文件s.p:这些文件关系到系统的数 ...
- JQuery hover(over,out) 使用笔记
转载自:http://www.douban.com/note/202404884/ JQuery hover(over,out) 使用笔记 JavaScript 下.onmouseover() 和 o ...
- Window.open 实现导航与打开窗口,导航到一个特定链接地址,也可以打开一个新的浏览器窗体
语法 window.open(strUrl,strWindowName,strWindowFeatures ,replace) strUrl: 打开资源的地址 strWindowName: 表示窗体名 ...