Codeforces 148 D Bag of mice(概率DP)
来源:互联网 发布:java中1到100的质数 编辑:程序博客网 时间:2024/06/04 01:26
思路:用dp[i][j]表示有i只白鼠,j只黑鼠;那么可以分为三种情况。1.公主第一次就抓到白鼠,dp[i][j]+=i/(i+j); 2.公主抓黑鼠,龙王抓黑鼠,一只黑鼠跳出来,dp[i][j]+=(((j/(i+j))*((j-1)/(i+j-1))*((j-2)/(i+j-2)))*dp[i][j-3],当然还得满足j>=3; 3.公主抓黑鼠,龙王抓黑鼠,一只白鼠跳出来,dp[i][j]=(((j/(i+j))*((j-1)/(i+j-1))*(i/(i+j-2)))*dp[i-1][j-2],j>=2.
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=1008;int w,b;double dp[maxn][maxn];int main(){ while(cin>>w>>b) { memset(dp,0,sizeof(dp)); for(int i=1;i<=w;i++) { dp[i][0]=1; } for(int j=0;j<=b;j++) { dp[0][j]=0; } for(int i=1;i<=w;i++) { for(int j=1;j<=b;j++) { dp[i][j]+=(double)i/(i+j); if(j>=3) dp[i][j]+=(((double)j/(i+j))*((double)(j-1)/(i+j-1))*((double)(j-2)/(i+j-2)))*dp[i][j-3]; if(j>=2) dp[i][j]+=(((double)j/(i+j))*((double)(j-1)/(i+j-1))*((double)i/(i+j-2)))*dp[i-1][j-2]; } } printf("%.9f\n",dp[w][b]); } return 0;}
0 0
- Codeforces 148D D Bag of mice(概率dp)
- codeforces 148D D. Bag of mice(概率dp)
- codeforces 148D Bag of mice DP 概率
- Codeforces 148D - Bag of mice 概率dp
- CodeForces 148D Bag of mice —— 概率DP
- codeforces-148D-Bag of mice-概率DP
- codeforces 148 D Bag of mice(概率dp)
- codeforces 148 D. Bag of mice(概率dp)
- codeforces 148 D. Bag of mice 概率dp
- Codeforces 148D Bag of mice 概率dp(水
- CodeForces - 148D Bag of mice(概率dp)
- codeforces 148d Bag of mice 概率dp
- CodeForces 148D Bag of mice 概率DP , DFS
- Codeforces 148D Bag of mice(概率dp)
- CodeForces 148D Bag of mice 概率dp!!
- Codeforces 148D Bag of mice(概率dp)
- CodeForces 148D. Bag of mice(概率dp啊 )
- Bag of mice - CodeForces 148 D 概率dp
- PHP:empty,isset,is_null,array(0),array(),array(""),0,"0","","null",NULL的总结
- Java多线程系列--“JUC锁”03之 公平锁(一)
- Spring AOP 使用注解为API引入新功能
- cloudstack_template_snapshot_volume
- Unity笔记 Stealth 实例详解
- Codeforces 148 D Bag of mice(概率DP)
- Virtualbox虚拟机网络配置(NAT + Host-only - Bridged)
- iOS中NSArray, NSSet, NSDictionary的使用
- linq用法
- 智捷课堂改版啦!
- C++笔记
- 如何做出完美的APP?
- 关于虚拟字符设备驱动的学习笔记globalmem
- Web 通信 之 长连接、长轮询(long polling)