CF540D Bad Luck Island(期望dp)
##解题思路
比较容易的一道期望$dp$,设$f[i][j][k]$表示石头$i$个,剪刀$j$个,步子$l$个。然后转移的时候用组合数算一下就好了。
##代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
const int MAXN = 105;
int r,s,p;
double f[MAXN][MAXN][MAXN],ans1,ans2,ans3;
inline int calc(int x,int y,int z){
return max(((x+y+z)*(x+y+z-1)-x*(x-1)-y*(y-1)-z*(z-1))/2,1);
}
int main(){
scanf("%d%d%d",&r,&s,&p);
f[r][s][p]=1.0;
for(int i=r;i>=0;i--)
for(int j=s;j>=0;j--)
for(int l=p;l>=0;l--){
if(i==0 && j==0 && l==0) continue;
if(i==r && j==s && l==p) continue;
// cout<<i<<" "<<j<<" "<<l<<" "<<calc(i,j,l)<<endl;
f[i][j][l]+=f[i+1][j][l]*((double)((i+1)*l)/calc(i+1,j,l));
f[i][j][l]+=f[i][j+1][l]*((double)((j+1)*i)/calc(i,j+1,l));
f[i][j][l]+=f[i][j][l+1]*((double)((l+1)*j)/calc(i,j,l+1));
}
for(int i=1;i<=r;i++) ans1+=f[i][0][0];
for(int i=1;i<=s;i++) ans2+=f[0][i][0];
for(int i=1;i<=p;i++) ans3+=f[0][0][i];
printf("%.12lf %.12lf %.12lf",ans1,ans2,ans3);
return 0;
}
CF540D Bad Luck Island(期望dp)的更多相关文章
- cf540D. Bad Luck Island(概率dp)
题意 岛上有三个物种:剪刀$s$.石头$r$.布$p$ 其中剪刀能干掉布,布能干掉石头,石头能干掉剪刀 每天会从这三个物种中发生一场战争(也就是说其中的一个会被干掉) 问最后仅有$s/r/p$物种生存 ...
- Codeforces Round #301 (Div. 2) D. Bad Luck Island 概率DP
D. Bad Luck Island Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/540/pr ...
- CF540D Bad Luck Island
嘟嘟嘟 看到数据范围很小,就可以暴力\(O(n ^ 3)\)dp啦. 我们令\(dp[i][j][k]\)表示这三种人分别剩\(i, j, k\)个的概率.然后枚举谁挂了就行. 这里的重点在于两个人相 ...
- codeforces 540D Bad Luck Island (概率DP)
题意:会出石头.剪刀.布的人分别有r,s,p个,他们相互碰到的概率相同,输的人死掉,问最终活下去的人是三种类型的概率 设状态dp(i,j,k)为还有i个石头,j个剪刀,k个布时的概率,dp(r,s,p ...
- 【CF540D】 D. Bad Luck Island (概率DP)
D. Bad Luck Island time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- cf.301.D. Bad Luck Island(dp + probabilities)
D. Bad Luck Island time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- CF#301 D:Bad Luck Island (概率dp)
D:Bad Luck Island 一个岛上有r个石头,s个剪子,p个布,他们之间随机挑出两个相遇,如果不是相同物种,就会有一个消失,分别求出最后这座岛上只剩下一个物种的概率. 我们用dp[i][j] ...
- CF 540D——Bad Luck Island——————【概率dp】
Bad Luck Island time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- Codeforces B. Bad Luck Island(概率dp)
题目描述: Bad Luck Island time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
随机推荐
- Django之Form操作
一.Form基础 (一)Form的作用 Django的Form主要有以下几大作用: 生成HTML标签 验证用户数据(显示错误信息) Form提交保留上次提交数据 初始化页面显示数据 (二)实例 一般网 ...
- 在Kubernetes下部署Prometheus
使用ConfigMaps管理应用配置 当使用Deployment管理和部署应用程序时,用户可以方便了对应用进行扩容或者缩容,从而产生多个Pod实例.为了 能够统一管理这些Pod的配置信息,在Kuber ...
- Vue学习笔记【8】——在Vue中使用样式
使用class样式 数组 <h1 :class="['red', 'thin']">这是一个邪恶的H1</h1> 2.数组中使用三元表达式 <h1 : ...
- Spring Security + JWT学习
开胃:Oauth2认证流程分析 现在第三方登录已经很普遍了,随便哪个App都会有使用微信登录,使用手机号码登录,或者使用支付宝登录等功能... 下面我们就以使用微信登录,做一个简单的流程分析分析 开胃 ...
- 在SpringCloud中MAVEN配置文件中的更改
<mirrors> <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> ...
- 使用Vue和djangoframwork完成登录页面构建 001
使用Vue和djangoframwork完成登录页面构建 001 环境的搭建 首先,我在我的电脑的F盘创建了一个文件夹 forNote,进入到这个文件夹中 F:\forNote> vue环境的搭 ...
- JavaScript笔记(第一章,第二章)
JavaScript笔记(第一章,第二章) 第一章: <meta http-equiv="Content-Type" content="text/html; cha ...
- POJ 3130 How I Mathematician Wonder What You Are! (半平面交)
题目链接:POJ 3130 Problem Description After counting so many stars in the sky in his childhood, Isaac, n ...
- window_mysql踩坑
https://blog.csdn.net/qq_37350706/article/details/81707862 先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置系统环境 ...
- swagger使用详解
1:认识Swagger Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法 ...