【Codeforces Round #301 (Div. 2) D】 Bad Luck Island
【链接】 我是链接,点我呀:)
【题意】
剪刀、石头、布各有r,s,p个生活在同一个村子里。
它们两两之间相遇的几率都相同(相遇后就会按照划拳的规则判断输赢,输的人就死掉了)。
问你最后只剩下剪刀,只剩下石头、只剩下布活着的概率。
【题解】
动态规划
如果从输赢方面去考虑的话很难找到解。
设f[i][j][k]表示石头,剪刀,布分别剩下i,j,k只活着的概率。
显然有i*j+i*k+j*k种可能。
而(i,j,k)这个状态,变成(i-1,j,k)这个状态,显然就是石头的个数减少1了。
那么就是石头遇到了布,也即其中的i*k种可能。
那么从(i,j,k)转移到(i-1,j,k)这个过程,就是f[i][j][k]*转移的概率。其中转移的概率=$\frac{i*k}{i*j+i*k+j*k}$
其他的转移同理
最后ans1 = f[i][0][0] ans2 = f[0][i][0] ans3 = f[0][0][i];
【代码】
#include <bits/stdc++.h>
using namespace std;
const int N = 100;
int r,s,p;
double f[N+10][N+10][N+10];
int main(){
#ifdef LOCAL_DEFINE
freopen("rush_in.txt", "rt", stdin);
#endif
scanf("%d%d%d",&r,&s,&p);
f[r][s][p] = 1;
for (int i = r;i >= 0;i--)
for (int j = s;j >= 0;j--)
for (int k = p;k >= 0;k--){
double temp = i*j + i*k + j*k;
if (i*j==0 && i*k==0 && j*k==0) continue;
if (i) f[i-1][j][k] += f[i][j][k]*((1.0*i*k)/temp);
if (j) f[i][j-1][k] += f[i][j][k]*((1.0*i*j)/temp);
if (k) f[i][j][k-1] += f[i][j][k]*((1.0*j*k)/temp);
}
double ans1 = 0,ans2 = 0,ans3 = 0;
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("%.12f %.12f %.12f\n",ans1,ans2,ans3);
return 0;
}
【Codeforces Round #301 (Div. 2) D】 Bad Luck Island的更多相关文章
- 【Codeforces Round #301 (Div. 2) E】Infinite Inversions
[链接] 我是链接,点我呀:) [题意] 给你一个无限长的序列1,2,3,4... 然后给你n个操作. 每个操作ai,bi; 表示调换位置为ai和位置为bi的数的位置. (ai,bi<=10^9 ...
- 【Codeforces Round #301 (Div. 2) C】 Ice Cave
[链接] 我是链接,点我呀:) [题意] 给你一个n*m的地图. 每个地图为0的时候可以安全走过,且走过后变成1. (一定要离开之后才会变成1) 而为1的则走过之后会掉入下一层. 你一开始在初始位置( ...
- 【Codeforces Round #301 (Div. 2) B】 School Marks
[链接] 我是链接,点我呀:) [题意] 已知k门成绩. 总共有n门成绩. 让你构造剩下的n-k门成绩,使得这n门成绩的中位数>=y,并且这n门成绩的和要小于等于x. n为奇数 [题解] 首先判 ...
- 【Codeforces Round #301 (Div. 2) A】 Combination Lock
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 模拟水题 [代码] #include <bits/stdc++.h> using namespace std; cons ...
- 【Codeforces Round #432 (Div. 1) B】Arpa and a list of numbers
[链接]h在这里写链接 [题意] 定义bad list是一个非空的.最大公约数为1的序列.给定一个序列,有两种操作:花费x将一个元素删除.花费y将一个元素加1,问你将这个序列变为good list所需 ...
- 【Codeforces Round #420 (Div. 2) C】Okabe and Boxes
[题目链接]:http://codeforces.com/contest/821/problem/C [题意] 给你2*n个操作; 包括把1..n中的某一个数压入栈顶,以及把栈顶元素弹出; 保证压入和 ...
- 【Codeforces Round #420 (Div. 2) B】Okabe and Banana Trees
[题目链接]:http://codeforces.com/contest/821/problem/B [题意] 当(x,y)这个坐标中,x和y都为整数的时候; 这个坐标上会有x+y根香蕉; 然后给你一 ...
- 【Codeforces Round #420 (Div. 2) A】Okabe and Future Gadget Laboratory
[题目链接]:http://codeforces.com/contest/821/problem/A [题意] 给你一个n*n的数组; 然后问你,是不是每个位置(x,y); 都能找到一个同一行的元素q ...
- 【Codeforces Round #423 (Div. 2) C】String Reconstruction
[Link]:http://codeforces.com/contest/828/problem/C [Description] 让你猜一个字符串原来是什么; 你知道这个字符串的n个子串; 且知道第i ...
随机推荐
- hdoj-1016-Prime Ring Problem【深搜】
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- LintCode 二叉树的遍历 (非递归)
前序: class Solution { public: /** * @param root: The root of binary tree. * @return: Preorder in vect ...
- java.lang.IllegalArgumentException: The observer is null.终于解决方式
java.lang.IllegalArgumentException: The observer is null.终于解决方式 在使用数据适配的时候的问题: java.lang.IllegalArgu ...
- session timer(一)
功能介绍 SIP并没有为所建立的会话定义存活机制. 虽然用户代理能够通过会话特定的机制推断会话是否超时,可是代理server却做不到这点. 如此一来.代理server有时会无法推断会话是否还是活动的. ...
- c++位运算符介绍
下面是C/C++位操作运算符列表,其中运算符优先级为从上到下递减,但<<,>>优先级相同. C/C++位操作运算符 操作符 功能 用法 ~ 位求反 ~expr << ...
- 洛谷P1722 矩阵 II
题目背景 usqwedf 改编系列题. 题目描述 如果你在百忙之中抽空看题,请自动跳到第六行. 众所周知,在中国古代算筹中,红为正,黑为负…… 给定一个1*(2n)的矩阵(usqwedf:这不是一个2 ...
- javafx Hanoi
Netbean java8 source code :http://files.cnblogs.com/files/rojas/HNT.zip screenshot: 1 model /* ...
- LuoguP1251 餐巾计划问题(费用流)
题目描述 一个餐厅在相继的 NN 天里,每天需用的餐巾数不尽相同.假设第 ii 天需要 r_iri块餐巾( i=1,2,...,N).餐厅可以购买新的餐巾,每块餐巾的费用为 pp 分;或者把旧餐巾送 ...
- python2 pip安装包等出现各种编码错误UnicodeDecodeError: 'ascii'(/或者utf-8) codec can't decode byte 0xd2...
1.问题描述: python2环境,pip安装包时报错UnicodeDecodeError: 'ascii'(/或者utf-8) codec can't decode byte 0xd2... 类似如 ...
- 小米开源文件管理器MiCodeFileExplorer-源码研究(2)-2个单实例工具类
从本篇开始,讲解net.micode.fileexplorer.util工具包中的类.这个包下的类,功能也比较单一和独立.很多代码的思想和实现,可以用于JavaWeb和Android等多种环境中. 一 ...