概率dp 148 D
概率dp
设 f(i,j)f(i,j) 表示有 ii 只白鼠,jj 只黑鼠时A先手胜的概率
初始状态
全白时,显然先手必胜
有一只黑鼠时,先手若抽到黑鼠则后手必胜,所以先手首回合必须抽到白鼠
f(i,0)=1,f(i,1)=\frac{i}{i+1}f(i,0)=1,f(i,1)=i+1i
转移方程 f(i,j)f(i,j)
先手抽到白鼠,胜:\frac{i}{i+j}i+ji
先手抽到黑鼠,后手抽到白鼠,败: 00
先手抽到黑鼠,后手抽到黑鼠,跑一只白鼠:\frac{j}{i+j}\times \frac{j-1}{i+j-1}\times \frac{i}{i+j-2}\times f(i-1,j-2)i+jj×i+j−1j−1×i+j−2i×f(i−1,j−2)
先手抽到黑鼠,后手抽到黑鼠,跑一只黑鼠:\frac{j}{i+j}\times \frac{j-1}{i+j-1}\times \frac{j-2}{i+j-2}\times f(i,j-3)i+jj×i+j−1j−1×i+j−2j−2×f(i,j−3)
f(i,j)=\frac{i}{i+j}+\frac{j}{i+j}\times \frac{j-1}{i+j-1}\times \frac{i}{i+j-2}\times f(i-1,j-2)+\frac{j}{i+j}\times \frac{j-1}{i+j-1}\times \frac{j-2}{i+j-2}\times f(i,j-3)f(i,j)=i+ji+i+jj×i+j−1j−1×i+j−2i×f(i−1,j−2)+i+jj×i+j−1j−1×i+j−2j−2×f(i,j−3)
O(wb)O(wb)
#include<bits/stdc++.h>
using namespace std;
inline int read()
{
int N=,C=;char tf=getchar();
for(;!isdigit(tf);tf=getchar())C|=tf=='-';
for(;isdigit(tf);tf=getchar())N=(N<<)+(N<<)+(tf^);
return C?-N:N;
}
const int N=;
int w,b;
double f[N][N];
int main()
{
w=read(),b=read();
for(int i=;i<=w;++i)
f[i][]=1.0,f[i][]=1.0*i/(i+); //全白必胜,一黑首回合必须抽到白鼠
if(!b||b==) return printf("%.9lf\n",f[w][b]),;
for(int i=;i<=w;++i)
for(int j=;j<=b;++j){
f[i][j]=1.0*i/(i+j);
f[i][j]+=1.0*j/(i+j)*(j-)/(i+j-)*i/(i+j-)*f[i-][j-];//跑白
//自我感觉这里可以改成j>=3;
//不过没验证过
if(j^) f[i][j]+=1.0*j/(i+j)*(j-)/(i+j-)*(j-)/(i+j-)*f[i][j-];//跑黑
}
printf("%.9lf\n",f[w][b]); return ;
}
概率dp 148 D的更多相关文章
- 概率dp专辑
求概率 uva11021 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...
- 动态规划之经典数学期望和概率DP
起因:在一场训练赛上.有这么一题没做出来. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6829 题目大意:有三个人,他们分别有\(X,Y,Z\)块钱 ...
- Codeforces 28C [概率DP]
/* 大连热身D题 题意: 有n个人,m个浴室每个浴室有ai个喷头,每个人等概率得选择一个浴室. 每个浴室的人都在喷头前边排队,而且每个浴室内保证大家都尽可能均匀得在喷头后边排队. 求所有浴室中最长队 ...
- HDU 4405 Aeroplane chess (概率DP)
题意:你从0开始,要跳到 n 这个位置,如果当前位置是一个飞行点,那么可以跳过去,要不然就只能掷骰子,问你要掷的次数数学期望,到达或者超过n. 析:概率DP,dp[i] 表示从 i 这个位置到达 n ...
- POJ 2096 Collecting Bugs (概率DP)
题意:给定 n 类bug,和 s 个子系统,每天可以找出一个bug,求找出 n 类型的bug,并且 s 个都至少有一个的期望是多少. 析:应该是一个很简单的概率DP,dp[i][j] 表示已经从 j ...
- POJ 2151 Check the difficulty of problems (概率DP)
题意:ACM比赛中,共M道题,T个队,pij表示第i队解出第j题的概率 ,求每队至少解出一题且冠军队至少解出N道题的概率. 析:概率DP,dp[i][j][k] 表示第 i 个队伍,前 j 个题,解出 ...
- 概率DP light oj 1030
t组数据 n块黄金 到这里就捡起来 出发点1 到n结束 点+位置>n 重掷一次 dp[i] 代表到这里的概率 dp[i]=(dp[i-1]+dp[i-2]... )/6 如果满6个的话 否则 ...
- hdu 4050 2011北京赛区网络赛K 概率dp ***
题目:给出1-n连续的方格,从0开始,每一个格子有4个状态,左右脚交替,向右跳,而且每一步的步长必须在给定的区间之内.当跳出n个格子或者没有格子可以跳的时候就结束了,求出游戏的期望步数 0:表示不能到 ...
- [转]概率DP总结 by kuangbin
概率类题目一直比较弱,准备把kuangbin大师傅总结的这篇题刷一下! 我把下面的代码换成了自己的代码! 原文地址:http://www.cnblogs.com/kuangbin/archive/20 ...
随机推荐
- [Python]python去除两个txt文件的重复词汇 python 2020.2.10
两个txt文件词汇,用换行符分隔.可以用代码将要处理的文件去掉另一个文件所包含的重复内容. 如: a.txt内容为: 衡山 泰山 西湖 紫禁城 b.txt内容为: 泰山 衡山 长白山 张三丰 将a.t ...
- AcWing 7. 混合背包问题
#include<iostream> #include<algorithm> #include<cstring> using namespace std ; ; i ...
- early-stopping的使用
early-stopping的使用 待办 https://blog.csdn.net/qq_37430422/article/details/103638681 github对应类导入,直接放在项目更 ...
- LED Holiday Light -holiday Light Inspection Implementation Recommendations
China LED Holiday Light Factory & Ninghai County Haohua Electronic Appliance Co., Ltd. pointed o ...
- K3/Cloud 用插件打开一张已存在的单据
BillShowParameter billpara = new BillShowParameter();billpara.FormId = "SAL_SaleOrder";//单 ...
- Wannafly Camp 2020 Day 2A 托米的字符串
#include <bits/stdc++.h> using namespace std; const int N = 1000005; int n; char str[N]; int a ...
- execute、executeUpdate、executeQuery的区别
链接:https://blog.csdn.net/u012501054/article/details/80323176 链接:https://blog.csdn.net/CNAHYZ/article ...
- postgresql + omniDB
docker:组装 使用Postgres数据库的web应用 登录到psql的方法: psql --host=localhost --dbname=database-name --username=po ...
- 3ds Max File Format (Part 3: The department of redundancy department; Config)
Now we'll have a look at the Config stream. It begins like follows, and goes on forever with various ...
- LED Decorative Light Supplier - LED Neon Application: 5 Advantages
In the past 100 years, lighting has gone a long way. LED decorative lighting is now designed to meet ...