Uva10491 Cows and Cars 【迁移自洛谷博客】
题目大意
假设有a头牛,b辆车(门的总数为a+b),你先选一个门,然后你最终选择前主持人会替你打开C扇有牛的门(不会打开你已经选择的门),问你要不要换门,输出“总是换门”的策略下,赢得车的概率。
分析
很明显这一题有两种情况。
(设事件A为得到了车,B为一开始选择牛门,C为一开始选择车门)
第一种,一开始选择了牛门。选择牛门这的事件的概率\(P(B)=\frac{a}{a+b}\),在选择了牛门的情况下最后得到了车的概率\(P(A|B)=\frac{b}{a+b-c-1}\),这里-c因为打开了c个牛门不能选,-1因为换了一个非当前选择的门。则有$$P(AB)=P(A|B)*P(B)=\frac{a}{a+b} \times \frac{b}{a+b-c-1}$$
第二种,一开始选择了车门。选择牛门这的事件的概率\(P(C)=\frac{b}{a+b}\),在选择了牛门的情况下最后得到了车的概率\(P(A|C)=\frac{b-1}{a+b-c-1}\),这里-c因为打开了c个牛门不能选,分母-1因为换了一个非当前选择的门,分子-1是因为自己的车门也不能选了。则有$$P(AC)=P(A|C)*P(C)=\frac{b}{a+b} \times \frac{b-1}{a+b-c-1}$$
因此总概率为$$P(A)=P(AB)+P(AC)=\frac{a}{a+b} \times \frac{b}{a+b-c-1} + \frac{b}{a+b} \times \frac{b-1}{a+b-c-1}$$
代码
#include<cstdio>
#include<algorithm>
using namespace std;
int a,b,c;
double p1,p2,ans;
void Init(){
int r=scanf("%d%d%d",&a,&b,&c);
if(r==EOF)exit(0);
}
void Work(){
p1=(double)(a*b)/((a+b)*(a+b-c-1));
p2=(double)(b*(b-1))/((a+b)*(a+b-c-1));
ans=p1+p2;
printf("%.5lf\n",ans);
}
int main(){
while(1){
Init();
Work();
}
return 0;
}
——2017-12-13 13:39:14
Uva10491 Cows and Cars 【迁移自洛谷博客】的更多相关文章
- UVA10779 Collectors Problem 【迁移自洛谷博客】
这是一道不错的练最大流建模的基础题. 这种题目审题是关键. Bob's friends will only exchange stickers with Bob, and they will give ...
- UVa1636 Headshot 【迁移自洛谷博客】
说明:小蒟蒻hkk现在正在做一些概率的题目,由于这方面和数学还有点关系,所以需要一些数学的思维,也需要表述出来,如夏军所述"把自己给讲懂",所以写了些blog,主要为帮助自己理解. ...
- JSOI2018冬令营游记&总结(迁移自洛谷博客)
游记 一开始在冬令营还没开始的时候,十分期待,殊不知每天都有一场浩劫在等着我. Day0 10:50出发,看见lbn同学发了一条说说,也随便发了一个. 然后在车上一直在睡觉,现在感觉挺后悔的,其实可以 ...
- UVA10491 - Cows and Cars(概率)
UVA10491 - Cows and Cars(概率) 题目链接 题目大意:给你n个门后面藏着牛.m个门后面藏着车,然后再给你k个提示.在你作出选择后告诉你有多少个门后面是有牛的,如今问你作出决定后 ...
- UVa10491 Cows and Cars
#include<iostream> #include<cstdio> #include<algorithm> int main(){ double a,b,c; ...
- 【洛谷 P4934】 礼物 (位运算+DP)
题目链接 位运算+\(DP\)=状压\(DP\)?(雾 \(a\&b>=min(a,b)\)在集合的意义上就是\(a\subseteq b\) 所以对每个数的子集向子集连一条边,然后答案 ...
- 洛谷 P3958 奶酪
谨以此题来纪念我爆炸的NOIp2017 这个题虽然很多人说是并查集,但是搜索也是毫无压力的,考场搜索细节写挂,爆了个不上不下的80分.今天无意看到这道题,终于AC 首先这道题要考虑一下精度问题,虽然出 ...
- 洛谷 P1019 单词接龙 (DFS)
题目传送门 当时一看到这题,蒟蒻的我还以为是DP,结果发现标签是搜索-- 这道题的难点在于思路和预处理,真正的搜索实现起来并不难.我们可以用一个贪心的思路,开一个dic数组记录每个单词的最小重复部分, ...
- 洛谷 P1126 机器人搬重物 (BFS)
题目链接:https://www.luogu.org/problemnew/show/P1126 吐槽:这题很阴险 一开始没把格子图转化成点图:30分 转化成点图,发现样例过不去,原来每步要判断vis ...
随机推荐
- B/S选择文件夹上传
1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出.还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工.挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通 ...
- Android签名机制之---签名验证过程详解
一.前言 今天是元旦,也是Single Dog的嚎叫之日,只能写博客来祛除寂寞了,今天我们继续来看一下Android中的签名机制的姊妹篇:Android中是如何验证一个Apk的签名.在前一篇文章中我们 ...
- [CSP-S模拟测试94]题解
A.凉宫春日的忧郁 高精硬上似乎跑不过,其实可以都取个$log$.那么只需要比较$y\times log ^x$和$\sum \limits _{i=1}^y log^i$就好了. #include& ...
- Javascript中this、prototype、constructor的理解(转载)
http://www.cnblogs.com/phpmix/articles/1734031.html
- Oracle DataGuard日志传输
1. 日志传输方式 有两种日志传输方式(ARC和LGWR),第一种是采用ARC进程传输日志,其示意图如下: 注:上图来自<大话Oracle RAC> 其大致过程如下: 1)主库:日志先写入 ...
- oracle12.2 CDB PDB基本管理操作
容器间切换 切换到对应的PDBSSQL> alter session set container=pdb1;Session altered.SQL> alter database open ...
- Nodejs - 交互式管理 Node.js 版本
n - npm:Interactively Manage Your Node.js Versions. Unfortunately n is not supported on Windows. npm ...
- 20150909—Win10系统80端口被System占用
安装了Windows10系统后,首先是查看80端口是不是被占用, 运行netstat -aon | findstr :80 ,发现pid是4的进程占用着80端口,这还是一个系统进程,kill不掉. 所 ...
- PHP安装-centos7
下载地址:https://www.php.net/downloads.php 1.wget下载php源码至/usr/local/src 下 wget https://www.php.net/distr ...
- 设计模式 - 装饰器模式(Decorator)
简介 场景 通过继承和关联都可以给对象增加行为,区别如下: 继承是静态的(无法在程序运行时动态扩展),且作用于所有子类.硬编码,高耦合. 通过装饰器可以在运行时添加行为和属性到指定对象.关联关系就是在 ...