题目链接:http://codeforces.com/problemset/problem/148/D

题意:
原来袋子里有w仅仅白鼠和b仅仅黑鼠
龙和王妃轮流从袋子里抓老鼠。 谁先抓到白色老师谁就赢。
王妃每次抓一仅仅老鼠。龙每次抓完一仅仅老鼠之后会有一仅仅老鼠跑出来。 每次抓老鼠和跑出来的老鼠都是随机的。 假设两个人都没有抓到白色老鼠则龙赢。王妃先抓。 问王妃赢的概率。 解析:
设dp[i][j]表示如今轮到王妃抓时有i仅仅白鼠,j仅仅黑鼠。王妃赢的概率
明显 dp[0][j]=0,0<=j<=b;由于没有白色老鼠了
dp[i][0]=1,1<=i<=w;由于都是白色老鼠,抓一次肯定赢了。
dp[i][j]能够转化成下列四种状态:
1、王妃抓到一仅仅白鼠,则王妃赢了,概率为i/(i+j);
2、王妃抓到一仅仅黑鼠。龙抓到一仅仅白色,则王妃输了。概率为j/(i+j)*i/(i+j-1).
3、王妃抓到一仅仅黑鼠,龙抓到一仅仅黑鼠。跑出来一仅仅黑鼠,则转移到dp[i][j-3]。
概率为j/(i+j)*(j-1)/(i+j-1)*(j-2)/(i+j-2);
4、王妃抓到一仅仅黑鼠,龙抓到一仅仅黑鼠。跑出来一仅仅白鼠。则转移到dp[i-1][j-2].
概率为j/(i+j)*(j-1)/(i+j-1)*i/(i+j-2); 当然后面两种情况要保证合法。即第三种情况要至少3仅仅黑鼠,第四种情况要至少2仅仅白鼠

by 点击打开链接

#include "stdio.h"
#include "math.h"
#include <iostream>
using namespace std;
const int N = 1005;
int w, b;
double dp[N][N];//dp[i][j]表示i仅仅白 j仅仅黑
double solve(){
for(int i = 0; i <= w; i++)
dp[i][0] = 1;
for(int i = 0; i <= b; i++)
dp[0][i] = 0;
dp[0][0] = 0;
for(int ii = 1; ii <= w; ii++)
for(int jj = 1; jj <= b; jj++)
{
double i = ii, j = jj;
dp[ii][jj] = i / (i+j);
if(j-3>=0)
dp[ii][jj] += dp[ii][jj-3] * j / (i+j) * (j-1) / (i+j-1) * (j-2) / (i+j-2);
if(j>=2 &&i>=1)
dp[ii][jj] += dp[ii-1][jj-2] * j / (i+j) * (j-1) / (i+j-1) * i / (i+j-2);
}
return dp[w][b];
}
int main (){
while(cin>>w>>b){
printf("%.10f\n", solve());
}
return 0;
}

Codeforces 148D Bag of mice 概率dp(水的更多相关文章

  1. codeforces 148D Bag of mice(概率dp)

    题意:给你w个白色小鼠和b个黑色小鼠,把他们放到袋子里,princess先取,dragon后取,princess取的时候从剩下的当当中任意取一个,dragon取得时候也是从剩下的时候任取一个,但是取完 ...

  2. Codeforces 148D 一袋老鼠 Bag of mice | 概率DP 水题

    除非特别忙,我接下来会尽可能翻译我做的每道CF题的题面! Codeforces 148D 一袋老鼠 Bag of mice | 概率DP 水题 题面 胡小兔和司公子都认为对方是垃圾. 为了决出谁才是垃 ...

  3. CF 148D Bag of mice 概率dp 难度:0

    D. Bag of mice time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  4. codeforce 148D. Bag of mice[概率dp]

    D. Bag of mice time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  5. 抓老鼠 codeForce 148D - Bag of mice 概率DP

    设dp[i][j]为有白老鼠i只,黑老鼠j只时轮到公主取时,公主赢的概率. 那么当i = 0 时,为0 当j = 0时,为1 公主可直接取出白老鼠一只赢的概率为i/(i+j) 公主取出了黑老鼠,龙必然 ...

  6. Codeforces Round #105 (Div. 2) D. Bag of mice 概率dp

    题目链接: http://codeforces.com/problemset/problem/148/D D. Bag of mice time limit per test2 secondsmemo ...

  7. Bag of mice(概率DP)

    Bag of mice  CodeForces - 148D The dragon and the princess are arguing about what to do on the New Y ...

  8. CF 148D. Bag of mice (可能性DP)

    D. Bag of mice time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  9. Codeforces 148D Bag of mice:概率dp 记忆化搜索

    题目链接:http://codeforces.com/problemset/problem/148/D 题意: 一个袋子中有w只白老鼠,b只黑老鼠. 公主和龙轮流从袋子里随机抓一只老鼠出来,不放回,公 ...

随机推荐

  1. linux虚拟主机管理系统wdcp系列教程之三

    我们安装了网站服务管理系统wdcp之后,在使用过程中可能会出现这样或那样的疑问,下面给大家整理几点出来,方便大家学习.还有不懂的可以到wdlinux论坛寻找相关教程. 1.wdcp后台访问安全设置即限 ...

  2. SQL Server2005使用CTE实现递归

    本文来自:http://www.cnblogs.com/wenjl520/archive/2010/01/18/1650393.html CTE递归原理: 递归CTE是由两个最小查询构建的.第一个是定 ...

  3. CSS清除浮动的方法

    CSS清除浮动的方法有哪些呢?经常性地会使用到float,很多邪门的事儿都有可能是浮动在作怪,清除浮动是必须要做的,而且随时性地对父级元素清除浮动的做法也被认为是书写CSS的良好习惯之一.下面看今天的 ...

  4. nat网络穿透整理笔记(思维导图)

    mindmanger整理的,关于Nat穿透,图片太小,可以点击放大,单独看图片.

  5. 新浪微博iOS示例,登录,获取个人信息

    1.导入第三方库和系统框架

  6. HTTP状态码搜集

    一.1xx消息 这一类型的状态码,代表请求已经接受,需要继续处理. 这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束. 由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非 ...

  7. 网页嵌入WMP代码(转)

    网页嵌入WMP代码 播放器代码解释,装了9.0或9.0以上的播放器才能正常使用: OBJECT id="WMP" height="176" width=&quo ...

  8. Android中Menu的基本用法

    一. 使用xml定义Menu 菜单资源文件必须放在res/menu目录中.菜单资源文件必须使用<menu>标签作为根节点.除了<menu>标签外,还有另外两个标签用于设置菜单项 ...

  9. J - A + B Problem II(第二季水)

    Description I have a very simple problem for you. Given two integers A and B, your job is to calcula ...

  10. c# ListView

    // Attempt to run the file. System.Diagnostics.Process.Start(filename); //folderCol 可以存放一个路径的 栈(用于返回 ...