Codeforces  148D Bag of mice(概率DP入门)

来源:互联网 发布:河源优化公司 编辑:程序博客网 时间:2024/06/15 04:45

题目很简单:公主和龙在玩游戏,一个袋子里有 w 只白老鼠和 b 只黑老鼠,公主先从袋子中取一只老鼠,然后龙再取,然后会有一只老鼠等概率的跳出来,然后再由公主取,谁先取到白老鼠谁就获胜,取老鼠也是等概率的,如果取到最后都没有人取到白老鼠,则龙赢,求公主赢的概率。PS:公主先取。
概率正在求,期望倒着求。
那么就正在推下:
设dp[i][j],是公主在面对这个袋子里有 i 只白老鼠,j 只黑老鼠的情况下获胜的概率,那么dp[w][b] 就是答案了;
假设在现在公主直接取了一只白老鼠,公主就获胜了,那么 dp[i][j] =i/(i+j).
如果现在公主取的是黑老鼠,那么可以有前面已经解决的子问题求得,可以分为两种情况:
1.公主取黑老鼠,龙取黑老鼠,跳出的也是黑老鼠,问题就转移到了dp[i][j-3],那么转移的概率就成了:
dp[i][j]+=j/(i+j)(j-1)/(i+j-1)(j-2)/(i+j-2)*dp[i][j-3];  j>=3;
2.公主取黑老鼠,龙取黑老鼠,跳出的是白老鼠,那么问题就转移到了dp[i-1][j-2],那么
dp[i][j]+=j/(i+j)*(j-1)/(i+j-1)*i/(i+j-2)*dp[i-1][j-2]  j>=2;

转移就已经想完了,再来考虑边界:
1.当袋子里面只有白老鼠,那么无论公主怎么取,获胜的概率就是 1。
2.当袋子里面只有黑老鼠,或者没有老鼠,公主获胜的概率都为 0。

#include<algorithm>#include<string>#include<string.h>#include<queue>#include<vector>#include<stack>#include<math.h>#include<map>#include<stdio.h>#include<iostream>using namespace std;#define maxn 1050double dp[maxn][maxn];int b,w;int main(){    scanf("%d%d",&w,&b);    for(int i=1;i<=w;i++)        dp[i][0]=1.0;    for(int i=1;i<=w;i++)    {        for(int j=1;j<=b;j++)        {            dp[i][j]=(double)i/(double)(i+j);            if(j>=3)                dp[i][j]+=(double)j*(double)(j-1)*(double)(j-2)*dp[i][j-3]/((double)(i+j)*(double)(i+j-1)*(double)(i+j-2));            if(i>=1&&j>=2)                dp[i][j]+=(double)j*(double)(j-1)*(double)i*dp[i-1][j-2]/((double)(i+j)*(double)(i+j-1)*(double)(i+j-2));        }    }    printf("%.9f\n",dp[w][b]);    return 0;}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小米平板关机后开不开机怎么办 公司老板跑路了社保怎么办 公司老板跑路社保怎么办 公司被公安局查封社保怎么办 小米四开不了机怎么办 小米的手机后壳裂了怎么办 公司没钱拖欠员工社保怎么办 小米note充不进去电怎么办 公司欠社保没交怎么办 公司不给转社保怎么办 小米note充电特别慢怎么办 小米小米note2充电慢怎么办 小米note充电红灯不闪烁怎么办 小米note充电红灯闪烁怎么办 小米note2突然充电慢怎么办 充电小米note2手机闪烁怎么办 小米6x上网慢怎么办 小米5数据上网慢怎么办 小米5c照相模糊怎么办 小米5充电很慢怎么办 iphone图库照片没了怎么办 我想通过微信号得到手机号怎么办 给充电宝充电慢怎么办 小米5s充不了电怎么办 百度网盘下载速度慢怎么办 负债累累没有钱没有资源怎么办 好福利密码忘了怎么办 手机无法申请百度网盘怎么办 魅族手机运行慢怎么办 阿里小宝卡流量用完了怎么办 阿里宝卡流量用完了怎么办 百度网盘本地空间不足怎么办 百度网盘空间不足怎么办 百度网盘容量不够怎么办 百度网盘内存不够怎么办 百度网盘储存空间不足怎么办 百度网盘手机号注销了怎么办 手机系统升级后照片没了怎么办 换手机照片没了怎么办 苹果手机icloud满了怎么办 百度网盘密码忘记怎么办