Bzoj3093 [Fdu校赛2012] A Famous Game
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 251 Solved: 136
Description
Input
Output
Sample Input
3 0 0
4 2 1
Sample Output
Case 2: 0.5000
HINT
[Explanation]
For example as the sample test one, there are three balls in the bag. The possibilities of the four possible situations are all 0.25. If there are no red balls in the bag, the possibility of the next ball are red is 0. If there is one red ball in the bag, the possibility is 1/3. If there are two red balls, the possibility is 2/3. Finally if all balls are red, the possibility is 1. So the answer is 0*(1/4)+(1/3)*(1/4)+(2/3)*(1/4)+1*(1/4)=0.5.
Source
数学问题 概率
推出来答案就是(q+1)/(p+2)
可能是近一年写过最短的代码
————————至于怎么推出来的?
http://www.cnblogs.com/neighthorn/p/6440645.html 参考了这里
首先要了解一些公式:
$ P(B)=\sum P(Ai)*P(B|Ai) $ 全概率公式,A是前置条件,B发生的概率是A取遍所有情况下发生B的概率的和
$ P(A|B)=P(AB)/P(B) $ 条件概率公式,B条件下发生A的概率等于“同时发生AB的概率/发生B的概率”
然后看具体题目:
设事件A为:按照题意,再抽出一个球为红色球的概率
设事件B为:抽出P个球,其中有q个球为红色的概率
设事件Ki为:起初有Ki个红球的概率
$ ANS=P(A|B)/P(B)=\frac{P(AB)}{P(B)} $
变形为
$\frac{ \sum_{i=0}^{N} P(AB|Ki)P(Ki)}{ \sum_{i=0}^{N} P(B|Ki)P(Ki)}$
==
$\frac{ \sum_{i=0}^{N} P(A|BKi)*P(B|Ki)*P(Ki)}{ \sum_{i=0}^{N} P(B|Ki)P(Ki)}$
上下形式很像,可惜K不同,不满足分配率,不能全约分掉
红球的个数从0~N等概率,所以每种情况出现的概率都是$ P(Ki)= \frac{1}{n+1} $
所以上式的P(Ki)可以约掉了
剩下的部分怎么办?
$ P(B|Ki)=\frac{C_{k}^{q}*C_{p-q}^{n-k} }{C_{n}^{p}} $
↑ 从红球中选q个的方案乘从蓝球中拿p-q个的方案除以所有拿的方案,看上去没毛病
$ P(A|BKi)=\frac{P(ABKi)}{P(BKi)}=\frac{k-q}{n-p} $
剩下n-p个球中有k-q个红球,看上去没毛病。也可以用条件概率公式约一波
得到:
$ \frac{ \sum_{i=0}^{N} \frac{k-q}{n-p} *\frac{ C_{k}^{q}C_{n-k}^{p-q}}{ C_{n}^{p}} } { \sum_{i=0}^{N} \frac{ C_{k}^{q}C_{n-k}^{p-q}}{ C_{n}^{p}}} $
那个$(k-q)/(n-p)$好麻烦,得想个办法处理掉。
$ C_{k}^{q}=\frac{k!}{q!(k-q)!}=\frac{k!}{q!(k-q-1)!}*(k-q) $
$ C_{k}^{q+1}=\frac{k!}{(q+1)!(k-q-1)!}=\frac{k!}{q!(k-q-1)!}*(q+1) $
于是把式子变形成:
$ \frac{ \sum_{i=0}^{N} \frac{q+1}{n-p} *\frac{ C_{k}^{q}C_{n-k}^{p-q}}{ C_{n}^{p}} } { \sum_{i=0}^{N} \frac{ C_{k}^{q}C_{n-k}^{p-q}}{ C_{n}^{p}}} $
这样就消除了又一处k的影响
从网上找来一个公式:

于是得到
$\frac{C_{n+1}^{p+2}}{C_{n+1}^{p+1}} *\frac{q+1}{n-p}$
再一化简就是(q+1)/(p+2)
————————
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
const int mxn=;
int read(){
int x=,f=;char ch=getchar();
while(ch<'' || ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>='' && ch<=''){x=x*-''+ch;ch=getchar();}
return x*f;
}
int n,p,q;
int main(){
int cas=;
while(scanf("%d%d%d",&n,&p,&q)!=EOF){
printf("Case %d: %.4f\n",++cas,(q+1.0)/(p+2.0));
}
return ;
}
Bzoj3093 [Fdu校赛2012] A Famous Game的更多相关文章
- BZOJ 3093: [Fdu校赛2012] A Famous Game
3093: [Fdu校赛2012] A Famous Game Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 242 Solved: 129[Subm ...
- 【BZOJ】3093: [Fdu校赛2012] A Famous Game
http://www.lydsy.com/JudgeOnline/problem.php?id=3093 题意:n个球(红和蓝两种),等概率有1~n个红球.首先取出p个球且这p个球里边有q个红球,问从 ...
- 【BZOJ】【3093】【FDU校赛2012】A Famous Game
概率论 神题不会捉啊……挖个坑先 orz 贾教 & QuarterGeek /********************************************************* ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- SCNU省选校赛第二场B题题解
今晚的校赛又告一段落啦,终于"开斋"了! AC了两题,还算是满意的,英语还是硬伤. 来看题目吧! B. Array time limit per test 2 seconds me ...
- 2014上半年acm总结(1)(入门+校赛)
大一下学期才开始了acm,不得不说有一点迟,但是acm确实使我的生活充实了很多,,不至于像以前一样经常没事干= = 上学期的颓废使我的c语言学的渣的一笔..靠考前突击才基本掌握了语法 寒假突然醒悟, ...
- 2017CUIT校赛-线上赛
2017Pwnhub杯-CUIT校赛 这是CUIT第十三届校赛啦,也是我参加的第一次校赛. 在被虐到崩溃的过程中也学到了一些东西. 这次比赛是从5.27早上十点打到5.28晚上十点,共36小时,中间睡 ...
- HZNU第十二届校赛赛后补题
愉快的校赛翻皮水! 题解 A 温暖的签到,注意用gets #include <map> #include <set> #include <ctime> #inclu ...
- 校赛F
问题描述 例如对于数列[1 2 3 4 5 6],排序后变为[6 1 5 2 4 3].换句话说,对于一个有序递增的序列a1, a2, a3, ……, an,排序后为an, a1, an-1, a2, ...
随机推荐
- Manacher算法:求解最长回文字符串,时间复杂度为O(N)
原文转载自:http://blog.csdn.net/yzl_rex/article/details/7908259 回文串定义:"回文串"是一个正读和反读都一样的字符串,比如&q ...
- python3.X中pickle类的用法(cPickle模块移除了)
1.python3.x中移除了cPickle模块,可以使用pickle模块代替.最终我们将会有一个透明高效的模块. 2.因为存储的是对象,必须使用二进制形式写进文件 #!/usr/bin/python ...
- 【TP5.1】HTML标签自动转义,导致CKEditor保存内容无法正常显示!
问题:使用Thinkphp5.1 开发的时候显示CKEditor保存的内容不符合预期. 希望的样子,肯定是不显示<p><b>等标签,而是下面的样子. 因为刚开始使用TP5.1和 ...
- 4.1 基本类型和引用类型的值【JavaScript高级程序设计第三版】
ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象. 在将一个值赋给变量时,解析器必须确定这个值是基 ...
- ERROR 1005 (HY000): Can't create table 'students.#sql-d9
今天在创建外键的时候出现以下错误 ERROR 1005 (HY000): Can't create table 'students.#sql-d99_3' (errno: 150) 格式 ...
- POJ:3279-Fliptile(矩阵反转)
Fliptile Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 14701 Accepted: 5381 Description ...
- [学习笔记]CSS选择器
CSS语法结构 selector { property1 : value; property2 : value; } 如果包含多个属性,那么属性每个属性的结尾需要有一个分号.如果属性的 ...
- laravel5.5服务提供器
目录 1. 编写服务提供器 1.1 注册方法 register 1.1.1 简单绑定 1.1.2 绑定单例 1.1.3 绑定实例 1.1.4 绑定初始数据 1.2 引导方法 boot 2. 注册服务提 ...
- runloop的mode作用是什么?
用来控制一些特殊操作只能在指定模式下运行,一般可以通过指定操作的运行mode来控制执行时机,以提高用户体验 系统默认注册了5个Mode kCFRunLoopDefaultMode:App的默认Mode ...
- Activiti入门 -- 轻松解读数据库
相关文章: <史上最权威的Activiti框架学习指南> <Activiti入门 --环境搭建和核心API简介> 在Activiti中,相对前身JBPM基础上又额外多了5张,框 ...