题目链接: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. LeeCode-Insertion Sort List

    Sort a linked list using insertion sort. /** * Definition for singly-linked list. * struct ListNode ...

  2. 【转】Android LCD(二):LCD常用接口原理篇

    关键词:android LCD TFT TTL(RGB)  LVDS  EDP MIPI  TTL-LVDS  TTL-EDP 平台信息:内核:linux2.6/linux3.0系统:android/ ...

  3. OpenStack 部署总结之:在CentOS 6.5上使用RDO单机安装icehouse(Ml2+GRE)

    本文主要介绍怎样在CentOS6.5上通过RDO来安装icehouse,因为安装的过程中涉及的软件较多,以及依赖关系比較复杂,建议使用一个全新的操作系统来进行安装. 安装步骤详细例如以下 (1)安装操 ...

  4. kvm 图形化安装

    为了再后续查看方便,我还是完整的记录kvm图形化安装. 介于网络环境的原因,我选择NAT. 2,安装kvm前的准备工作 2.1 关闭防火墙  setenforce 0    vi /etc/sysco ...

  5. 《JavaScript 闯关记》之变量和数据类型

    当程序需要将值保存起来以备将来使用时,便将其赋值给一个变量,值的类型称作数据类型. 变量 JavaScript 的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据.换句话说,每个变量仅仅是 ...

  6. ArcGIS添加鹰眼

    axMapControl1是主地图 axMapControl2是鹰眼地图 private void axMapControl1_OnExtentUpdated(object sender, IMapC ...

  7. PHP学习笔记十三【二维数组】

    <?php //二维数组 $arr=array(array(1,2,3),array(4,5,6)); $arr1[0]=array(12,34,65); $arr1[1]=array(34,6 ...

  8. Swift语法基础入门一(适合有C, OC开发人员)

    Swift开发体验 /*: 创建对象 * OC: alloc initWithXXX 方法 * Swift: (xxx:) */ /*: 调用方法 * OC: [UIColor redColor]; ...

  9. linux学习笔记之进程

    一.基础知识 1:进程. 1,进程ID: 非负整数,具有唯一性. 1)ID=0的进程:调度进程/交换进程.内核的一部分.不执行任何磁盘上的程序. 2)ID=1的进程:init进程. 1-自举结束时,由 ...

  10. LinearLayout遇到的问题——利用LinearLayout做横向滑动冲突

    问题:当我添加两个TextView的时候,然后滑动,发现只生成了一个TextView. 就是 <?xml version="1.0" encoding="utf-8 ...