博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 540D Bad Luck Island
阅读量:7107 次
发布时间:2019-06-28

本文共 1435 字,大约阅读时间需要 4 分钟。

题目大意:

会出石头、剪刀、布的人分别有r,s,p个,他们相互碰到的概率相同,输的人死掉,问最终活下去的人是三种类型的概率。

思路:

f[i][j][k]代表i个石头,j个剪刀,k个布状态的概率,初始f[n][m][K]=1

 

1 #include
2 #include
3 #include
4 #include
5 #include
6 #define dou long double 7 dou jc[20005]; 8 dou f[105][105][105]; 9 int n,m,K;10 int read(){11 int t=0,f=1;char ch=getchar();12 while (ch<'0'||ch>'9'){
if (ch=='-') f=-1;ch=getchar();}13 while ('0'<=ch&&ch<='9'){t=t*10+ch-'0';ch=getchar();}14 return t*f;15 }16 int main(){17 n=read();m=read();K=read();18 f[n][m][K]=1.0;19 for (int i=n;i>=0;i--)20 for (int j=m;j>=0;j--)21 for (int k=K;k>=0;k--)22 if (f[i][j][k]>0)23 {24 int cnt=((int)(i==0))+((int)(j==0))+((int)(k==0));25 if (cnt>=2) continue;26 double tot=i*j+j*k+k*i;27 if (i>0)28 f[i-1][j][k]+=f[i][j][k]*(i*k)/tot;29 if (j>0)30 f[i][j-1][k]+=f[i][j][k]*(i*j)/tot;31 if (k>0)32 f[i][j][k-1]+=f[i][j][k]*(k*j)/tot;33 }34 double ans1=0,ans2=0,ans3=0;35 for (int i=1;i<=n;i++)36 ans1+=(double)f[i][0][0];37 for (int i=1;i<=m;i++)38 ans2+=(double)f[0][i][0];39 for (int i=1;i<=K;i++)40 ans3+=(double)f[0][0][i];41 printf("%.9f %.9f %.9f\n",ans1,ans2,ans3); 42 return 0;43 }

 

 

 

 

转载于:https://www.cnblogs.com/qzqzgfy/p/5628226.html

你可能感兴趣的文章
Oracle问题之literal does not match format string
查看>>
shell的比较运算符
查看>>
ArcGIS JS 学习笔记2 实现仿百度的拖拽画圆
查看>>
BZOJ1026: [SCOI2009]windy数[数位DP]
查看>>
Nginx的https配置记录以及http强制跳转到https的方法梳理
查看>>
android图像处理系列之三--图片色调饱和度、色相、亮度处理
查看>>
TensorFlow学习路径【转】
查看>>
JAVA设计模式之单例模式
查看>>
Ansible@一个高效的配置管理工具--Ansible configure management--翻译(五)
查看>>
第三章 Spring.Net 环境准备和搭建
查看>>
< meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" />的意义
查看>>
java的PrintStream(打印输出流)详解(java_io)
查看>>
php杂项函数
查看>>
图片资源网站
查看>>
json_decode 为空
查看>>
[PHP] 算法-构建排除当前元素的乘积数组的PHP实现
查看>>
实现:支付宝手机密码支付功能
查看>>
为啥百度、网易、小米都用Python?Python的用途是什么?
查看>>
Linux系统IO分析工具之iotop常用参数介绍
查看>>
软件的依赖关系:类图关系:is-a has-a use-a
查看>>