LightOJ 1050 - Marbles (概率dp)

原创 2015年11月20日 16:45:49

题意:

r<=500,b<=500,,b
,b,

分析:

dp[r][b]:=,rb,,

代码:

//
//  Created by TaoSama on 2015-11-20
//  Copyright (c) 2015 TaoSama. All rights reserved.
//
//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include <algorithm>
#include <cctype>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <string>
#include <set>
#include <vector>

using namespace std;
#define pr(x) cout << #x << " = " << x << "  "
#define prln(x) cout << #x << " = " << x << endl
const int N = 1e5 + 10, INF = 0x3f3f3f3f, MOD = 1e9 + 7;

int r, b;
double dp[505][505];

double dfs(int r, int b) {
    double &ret = dp[r][b];
    if(ret >= 0) return ret;
    if(r == 0) return ret = 1;
    if(b == 0) return ret = 0;
    int sum = r + b;
    ret = 1.0 * r / sum * dfs(r - 1, b - 1); //I take red
    if(b > 1) ret += 1.0 * b / sum * dfs(r, b - 2); //I take blue
    return ret;
}

int main() {
#ifdef LOCAL
    freopen("C:\\Users\\TaoSama\\Desktop\\in.txt", "r", stdin);
//  freopen("C:\\Users\\TaoSama\\Desktop\\out.txt","w",stdout);
#endif
    ios_base::sync_with_stdio(0);

    int t; scanf("%d", &t);
    int kase = 0;
    fill(dp[0], dp[0] + 505 * 505, -1.0);
    while(t--) {
        scanf("%d%d", &r, &b);
        printf("Case %d: %.10f\n", ++kase, dfs(r, b));
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

(概率DP)正向推概率,反向推期望

为什么要正向推概率,反向推期望呢? 首先,我们看看什么是条件概率。 然后,我们再看看什么是贝叶斯公式。...
  • nameofcsdn
  • nameofcsdn
  • 2016年08月01日 09:05
  • 2132

HDU 4336 概率DP求期望(or容斥原理)

题意: 有N(1
  • c3568
  • c3568
  • 2013年08月11日 16:52
  • 1427

ACM 中的期望,概率 问题

一个简易的入门:点击打开链接 kuangbin的总结:点击打开链接 我搞的题目:点击打开链接 前段时间一直在做概率的题目。 一、期望 其中求解期望问题刚开始一直不理解。后来做得多了有感觉。 例:(有放...
  • gg_gogoing
  • gg_gogoing
  • 2015年01月25日 10:33
  • 2944

LightOJ 1050 - Marbles(概率DP)

题意:红蓝两种球。你每次可随机拿一个,Jim每次只能拿蓝球。若Jim无球可拿,则他赢。若最后一个被拿的是蓝球,不管谁拿的都是你赢。否则Jim赢。求你赢的概率。 思路:dp[i][j]表示i个红球j个蓝...
  • Yeluorag
  • Yeluorag
  • 2015年11月25日 23:25
  • 174

LightOJ 1030 【概率DP求期望】

题意: n个格子,每个格子有一个值。从1开始,每次扔6个面的骰子,扔出几点就往前几步,然后把那个格子的金子拿走; 如果扔出的骰子+所在位置>n,就重新扔,直到在n; 问取走这些值的期望值是多少; ...
  • KEYboarderQQ
  • KEYboarderQQ
  • 2016年10月31日 16:34
  • 201

lightoj 1030 概率dp

1030 - Discovering Gold   PDF (English) Statistics Forum Ti...
  • liyunlong41
  • liyunlong41
  • 2016年03月29日 23:34
  • 152

LightOJ1030---Discovering Gold(概率dp)

You are in a cave, a long cave! The cave can be represented by a 1 x N grid. Each cell of the cave c...
  • Guard_Mine
  • Guard_Mine
  • 2015年04月29日 19:25
  • 787

LightOJ 1038 Race to 1 again 期望+概率dp

/* 题目描述:给定正整数n,每次任意选择n的一个因子并除掉,问平均一共要除多少次能把n变成1 思路:设dp[x]表示把x变为1的期望,f[x]表示x的因子个数,根据全期望公...
  • jijijix
  • jijijix
  • 2016年08月27日 10:15
  • 129

[概率DP] LightOJ 1151 - Snakes and Ladders

1151 - Snakes and Ladders 题意: 有100个格子,从1开始走,每次随机走1~6。有n个格子会单向传送到其他格子,tp[i]表示从i传送到tp[i]。 1和100不会有传...
  • kg20006
  • kg20006
  • 2016年04月05日 16:07
  • 746

LIghtOJ1038---Race to 1 Again(概率dp)

Rimi learned a new thing about integers, which is - any positive integer greater than 1 can be divid...
  • Guard_Mine
  • Guard_Mine
  • 2015年04月29日 20:02
  • 859
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LightOJ 1050 - Marbles (概率dp)
举报原因:
原因补充:

(最多只允许输入30个字)