Bad Luck Island CodeForces
来源:互联网 发布:suse linux 配置ip 编辑:程序博客网 时间:2024/05/07 01:23
题意:会出石头、剪刀、布的人分别有r,s,p个,他们相互碰到的概率相同,输的人死掉,问最终活下去的人是三种类型的概率。
因为是概率不是期望;所以从dp[r][s][p]推到dp[0][0][0];直接暴力三重循环
每一次跟新时的总情况一定是i*j+j*k+k*i;
然后如果剪刀减少一个的概率就是现有的(石头个数剪刀个数/总数)当前情况的概率;
即dp[i][j-1][k]+=dp[i][j][k]*(1.0*i*j/sum);//剪刀少一个;
其他同理;
最后若求剪刀存活概率,就是将dp【0】【j】【k】求和;
因为仅存剪刀和布,剪刀必赢,所以上面递推时没必要到两个0,只要1个0;
#include <cstdio>#include <cstring>#include <iostream>using namespace std;double dp[101][101][101];int main(){ int a,b,c; scanf("%d%d%d",&a,&b,&c); memset(dp,0,sizeof(dp)); dp[a][b][c]=1; for(int i=a;i>=1;i--){ for(int j=b;j>=1;j--){ for(int k=c;k>=1;k--){ int sum=i*j+j*k+k*i; dp[i][j-1][k]+=dp[i][j][k]*(1.0*i*j/sum);//剪刀少一个; dp[i-1][j][k]+=dp[i][j][k]*(1.0*i*k/sum);//石头少一个; dp[i][j][k-1]+=dp[i][j][k]*(1.0*k*j/sum);//布少一个; } } } double ans=0; for(int i=a;i>=0;i--){ for(int j=b;j>=0;j--) ans+=dp[i][j][0]; } printf("%.12f ",ans); ans=0; for(int k=c;k>=0;k--){ for(int j=b;j>=0;j--) ans+=dp[0][j][k]; } printf("%.12f ",ans); ans=0; for(int k=c;k>=0;k--){ for(int i=a;i>=0;i--) ans+=dp[i][0][k]; } printf("%.12f\n",ans); return 0;}
阅读全文
0 0
- Bad Luck Island CodeForces
- codeforces 540D - Bad Luck Island
- CodeForces 540D Bad Luck Island
- Codeforces Round #301 (Div. 2) D. Bad Luck Island
- Codeforces 540D Bad Luck Island 概率dp
- codeforces 540D D. Bad Luck Island( 概率dp)
- codeforces 540 D. Bad Luck Island (概率dp)
- CodeForces 540D Bad Luck Island (概率dp)
- Codeforces 540D Bad Luck Island【概率dp】
- Codeforces Div.301D Bad Luck Island(概率dp+记忆化搜索)
- Codeforces Round #301 (Div. 2)---D. Bad Luck Island(概率dp)
- 概率dp Codeforces Round #301 (Div. 2) D - Bad Luck Island
- 7_6_R题 Bad Luck Island题解[Codeforces 540D](概率DP)
- Codeforces Round #301 (Div. 2) -- D. Bad Luck Island (概率DP)
- Codeforces Round #301 (Div. 2) D. Bad Luck Island(概率DP)
- Codeforces Round #301 (Div. 2)-D. Bad Luck Island(概率dp)
- Codeforces Round #301 (Div. 2) D. Bad Luck Island 概率dp
- codeforces 540D. Bad Luck Island (概率与期望DP)
- dokuwiki升级步骤
- hdfs shell 命令
- leetcode 102. Binary Tree Level Order Traversal
- 上下文切换-FreeRTOS是如何工作的
- 多态 virtual
- Bad Luck Island CodeForces
- CSS定位,相对定位,绝对定位
- JAVA代码如何实现反射(反射用JAVA代码怎么实现)
- fzu-2140 Forever 0.5
- 找出可能发生问题的地方
- Matlab/Simulink之STM32开发
- Redis配置文件参数说明
- 类的无参方法
- CSS3 box-sizing 属性