uva 557 - Burger(概率)
2013-11-03 15:10
302 查看
题目链接:uva 557 - Burger
题目大意: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 <stdio.h> #include <string.h> const int N = 50005; double p ; void init() { p[1] = 1; for (int i = 1; i < 50000; i++) p[i + 1] = p[i] * (2 * i - 1) / (2 * i); } int main () { init(); int cas, n; scanf("%d", &cas); while (cas--) { scanf("%d", &n); printf("%.4lf\n", 1 - p[n / 2]); } return 0; }
相关文章推荐
- core--线程状态
- [LeetCode] Scramble String (非常规DP求解)
- leetcode Word Break I II 算法分析
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之二 - 断言
- 亡命逃窜(nyoj523广搜)
- C++.Homework.Inheritance.02
- 软件测试工具LoadRunner选项设置
- [安卓编译]JDK1.6 64位
- SSH整合常见错误
- 函数调用方式--__thiscall调用方式和__cdecl,__stdcall有什么区别
- 学生成绩等级
- 函数调用方式--__thiscall调用方式和__cdecl,__stdcall有什么区别
- 使用selector去除默认GridView/ListView包含条目的默认点击效果
- pgp 和 md5
- 详细介绍预处理指令data_seg的使用方法
- HDU1540:Tunnel Warfare(线段树区间合并)
- HDU 1698 线段树区间修改
- android.view.View
- javascript闭包
- 深入浅出多线程(6)分析并行包线程池的设计与实现[转载]