D. Bag of mice
time limit per test

2 seconds

memory limit per test

256 megabytes

input

standard input

output

standard output

The dragon and the princess are arguing about what to do on the New Year's Eve. The dragon suggests flying to the mountains to watch fairies dancing in the moonlight, while the princess thinks they should just go to bed early. They are desperate to come to an amicable agreement, so they decide to leave this up to chance.

They take turns drawing a mouse from a bag which initially contains w white and b black mice. The person who is the first to draw a white mouse wins. After each mouse drawn by the dragon the rest of mice in the bag panic, and one of them jumps out of the bag itself (the princess draws her mice carefully and doesn't scare other mice). Princess draws first. What is the probability of the princess winning?

If there are no more mice in the bag and nobody has drawn a white mouse, the dragon wins. Mice which jump out of the bag themselves are not considered to be drawn (do not define the winner). Once a mouse has left the bag, it never returns to it. Every mouse is drawn from the bag with the same probability as every other one, and every mouse jumps out of the bag with the same probability as every other one.

Input

The only line of input data contains two integers w and b (0 ≤ w, b ≤ 1000).

Output

Output the probability of the princess winning. The answer is considered to be correct if its absolute or relative error does not exceed10 - 9.

Sample test(s)
input
  1. 1 3
output
  1. 0.500000000
input
  1. 5 5
output
  1. 0.658730159
Note

Let's go through the first sample. The probability of the princess drawing a white mouse on her first turn and winning right away is 1/4. The probability of the dragon drawing a black mouse and not winning on his first turn is 3/4 * 2/3 = 1/2. After this there are two mice left in the bag — one black and one white; one of them jumps out, and the other is drawn by the princess on her second turn. If the princess' mouse is white, she wins (probability is 1/2 * 1/2 = 1/4), otherwise nobody gets the white mouse, so according to the rule the dragon wins.

概率dp

开始没想明白转移状态方程,一直思考反了。

dp[i][j]表示轮到王妃抓时,袋子中有i只白鼠,j只黑鼠,王妃赢的概率。

共有四种情况:

1.王妃抓到白鼠 dp[i][j] += i / (i + j);

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];

3.王妃抓到黑鼠,王抓到黑鼠,蹦出一只黑鼠,则转移到下一个状态dp[i ][j - 3],   dp[i][j] += j / (i + j) * (j - 1) / (i + j - 1) * (j - 2) / (i + j - 2) * dp[i][j - 3];

4.王妃抓到黑鼠,王抓到白鼠, dp[i][j] += 0.0;

  1. #include <cstdio>
  2. #include <iostream>
  3. #include <sstream>
  4. #include <cmath>
  5. #include <cstring>
  6. #include <cstdlib>
  7. #include <string>
  8. #include <vector>
  9. #include <map>
  10. #include <set>
  11. #include <queue>
  12. #include <stack>
  13. #include <algorithm>
  14. using namespace std;
  15. #define ll long long
  16. #define _cle(m, a) memset(m, (a), sizeof(m))
  17. #define repu(i, a, b) for(int i = a; i < b; i++)
  18. #define MAXN 1005
  19. #define eps 1e-5
  20. double dp[MAXN][MAXN];
  21.  
  22. int main()
  23. {
  24. int w, b;
  25. while(~scanf("%d%d", &w, &b))
  26. {
  27. _cle(dp, );
  28. for(int i = ; i <= w; i++) dp[i][] = 1.0;
  29. for(int i = ; i <= b; i++) dp[][i] = 0.0;
  30.  
  31. for(int i = ; i <= w; i++)
  32. for(int j = ; j <= b; j++) {
  33. dp[i][j] += (double)i / (double)(i + j);
  34. if(j > ) dp[i][j] += ((double)j * (double)(j - ) * (double)i) / ((double)(i + j) * (double)(i + j - ) * (double)(i + j - )) * dp[i - ][j - ];
  35. if(j > ) dp[i][j] += ((double)j * (double)(j - ) * (double)(j - )) / ((double)(i + j) * (double)(i + j - ) * (double)(i + j - )) * dp[i][j - ];
  36. }
  37. printf("%.9lf\n", dp[w][b]);
  38. }
  39. return ;
  40. }

Bag of mice(CodeForces 148D )的更多相关文章

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

    题目链接 D. Bag of mice time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  2. CF148D. Bag of mice(概率DP)

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

  3. 【CF148D】 Bag of mice (概率DP)

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

  4. code forces 148D Bag of mice (概率DP)

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  5. (CodeForces - 5C)Longest Regular Bracket Sequence(dp+栈)(最长连续括号模板)

    (CodeForces - 5C)Longest Regular Bracket Sequence time limit per test:2 seconds memory limit per tes ...

  6. Sorted Adjacent Differences(CodeForces - 1339B)【思维+贪心】

    B - Sorted Adjacent Differences(CodeForces - 1339B) 题目链接 算法 思维+贪心 时间复杂度O(nlogn) 1.这道题的题意主要就是让你对一个数组进 ...

  7. (CodeForces 558C) CodeForces 558C

    题目链接:http://codeforces.com/problemset/problem/558/C 题意:给出n个数,让你通过下面两种操作,把它们转换为同一个数.求最少的操作数. 1.ai = a ...

  8. [题解]Yet Another Subarray Problem-DP 、思维(codeforces 1197D)

    题目链接:https://codeforces.com/problemset/problem/1197/D 题意: 给你一个序列,求一个子序列 a[l]~a[r] 使得该子序列的 sum(l,r)-k ...

  9. 【Codeforces】【图论】【数量】【哈密顿路径】Fake bullions (CodeForces - 804F)

    题意 有n个黑帮(gang),每个黑帮有siz[i]个人,黑帮与黑帮之间有有向边,并形成了一个竞赛完全图(即去除方向后正好为一个无向完全图).在很多年前,有一些人参与了一次大型抢劫,参与抢劫的人都获得 ...

随机推荐

  1. So easy Webservice 4.Java方式访问WebService(使用jdk1.6以上 wsimport命令)

    1.选中要调用的服务单击”服务说明” 2.获取wsdl文件.使用JDK1.6以上的版本的wsimport命令 a) 例如选中:http://webservice.webxml.com.cn/WebSe ...

  2. 【CC评网】2013.第39周 漂亮的作息表

    作息表 网上看到一份夏令时的作息表,让人羡慕不已: 5:00 起床——迷糊5分钟,喝500ML白开水,坐马桶看Google reader 5:20 小区6KM(大约25min—30min)+100个俯 ...

  3. CSS3 transition/transform

    Transition 1.简写属性transition,可以包括四个属性,这四个属性的顺序按照下面介绍的顺序书写,即transition:property duration timing-functi ...

  4. C#垃圾回收机制(GC)

    GC的前世与今生 虽然本文是以.net作为目标来讲述GC,但是GC的概念并非才诞生不久.早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是 ...

  5. ubuntu 安装遇到黑屏

    1.安装了ubuntu之后,进入登录页面,然后用输入密码后就黑屏了,按ctrl+alt+f1都没用,也进不去命令界面,查找资料后发现是必须在虚拟机->设置->硬件->显示器,上把加速 ...

  6. Doragon Kuesuto 1.6

    /* * <<D Q>> * * Author xkfx<wyzxk_fx@163.com> * * 游戏规则:利用适当的决策,在13回合内击杀恶龙取得胜利. * ...

  7. Gas Station

    Description: There are N gas stations along a circular route, where the amount of gas at station i i ...

  8. ios7适配一些问题以及64位32位

    ios7适配一些问题(http://www.cocoachina.com/ios/20130703/6526.html) 1.iOS应用如何实现64位的支持 http://www.codeceo.co ...

  9. MyBatis——Mybatis缓存

    原文:http://www.cnblogs.com/xdp-gacl/p/4270403.html MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架 ...

  10. 使用==比较String类型

    String类型的比较 public class StringDemo { public static void main(String[] args) { String s1 = "abc ...