UVa 557 - Burger (概率)
2014-10-05 19:00
239 查看
思路参考/article/2061111.html
题意:
Ben和Bill是一对双胞胎,生日那天他们请了2n个朋友(包括他们自己,题目给出的即为2n),然后有n个汉堡和n个三明治,然后由Ben的左边开始分食物,每个人选取食物的方式是先丢硬币,正面汉堡,反面是三明治,问最后双胞胎兄弟那道同一种食物的概率。
算法:
正面考虑不好计算,可以反面考虑。
题目可以递推兄弟俩拿到不同的食物的概率,然后用1-p就是所要的答案。
p[i] = 1/2^(2 * i - 2) * C(i - 1, 2 * i - 2) p[i]表示2i个人的情况。
然后用p[i + 1] / p[i] = (2 * n - 1)/ (2 * n)。
题意:
Ben和Bill是一对双胞胎,生日那天他们请了2n个朋友(包括他们自己,题目给出的即为2n),然后有n个汉堡和n个三明治,然后由Ben的左边开始分食物,每个人选取食物的方式是先丢硬币,正面汉堡,反面是三明治,问最后双胞胎兄弟那道同一种食物的概率。
算法:
正面考虑不好计算,可以反面考虑。
题目可以递推兄弟俩拿到不同的食物的概率,然后用1-p就是所要的答案。
p[i] = 1/2^(2 * i - 2) * C(i - 1, 2 * i - 2) p[i]表示2i个人的情况。
然后用p[i + 1] / p[i] = (2 * n - 1)/ (2 * n)。
#include<cstdio> #include<iostream> #include<cstring> using namespace std; double p[50000+10]; void init() { p[1] = 1; for(int i=1;i<=50000;i++) p[i+1] = p[i]*(2*i-1)/(2*i); } int main() { int n,T; init(); scanf("%d",&T); while(T--) { scanf("%d",&n); printf("%.4lf\n",1-p[n/2]); } return 0; }
相关文章推荐
- Burger - UVa 557 概率dp
- UVA 557 Burger——概率
- UVa 557 (概率 递推) Burger
- UVa 557 - Burger(概率+递推)
- UVA 557 - Burger(概率 递推)
- uva 557 - Burger(概率)
- UVA 557 - Burger(概率 递推)
- [UVA557] Burger && 概率
- UVA - 557 Burger 排列组合 概率
- UVa 557 Burger (概率+递推)
- UVa 557 - Burger
- UVA557 Burger 数论 递推组合
- uva 557 Burger
- UVA 557(p344)----Burger
- UVA 557 Burger
- uva 557 - Burger
- 习题10-12 UVA - 557 Burger 汉堡
- uva 557 Buger 概率
- UVA - 557 Burger
- Burger - UVa 557 滚动数组 暴力 递推 打表