uva11181Probability|Given
枚举,条件概率。
2^20次方等于100w,是大约可以没准还能过的。
二进制枚举时,如果买东西的人恰好为r个,设概率为p,就将sum[i]+=p(sum[i]为r个人买东西时第i个人买东西的概率),tot+=p(tot为r个人买东西的概率)
要求的就是sum[i]/tot。
P(第i个人实际买东西)=P(r个人买东西且第i个人在其中)/P(r个人买东西)。
r为0时特判
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn = 20 + 10;
int n,r,N,cnt,kase;
double a[maxn],sum[maxn];
double tot,p; int main() {
kase=0;
while(scanf("%d%d",&n,&r)==2) {
printf("Case %d:\n",++kase);
if(!n&&!r) break;
for(int i=0;i<n;i++) scanf("%lf",&a[i]);
if(!r) {
for(int i=0;i<n;i++) printf("0.000000\n");
continue;
}
N=1<<n;
memset(sum,0,sizeof(sum)); tot=0;
for(int i=1;i<N;i++) {
cnt=0; p=1;
for(int j=0;j<n;j++) {
if(i&(1<<j)) {cnt++; p*=a[j];}
else p*=(1-a[j]);
}
if(cnt==r) {
for(int j=0;j<n;j++) if(i&(1<<j)) sum[j]+=p;
tot+=p;
}
}
for(int i=0;i<n;i++) printf("%.6lf\n",sum[i]/tot);
}
return 0;
}
uva11181Probability|Given的更多相关文章
- UVA11181Probability|Given(条件概率)
题目链接 紫书P327 题意:有n个人准备去超市逛,其中第i个人买东西的概率是 Pi .逛完以后你得知有 r 个人买了东西.根据这一信息,计算每个人实际买东西的概率.输入 n ( 1 <= n ...
随机推荐
- AvalonDock 2.0+Caliburn.Micro+MahApps.Metro实现Metro风格插件式系统(一)
随着IOS7由之前UI的拟物化设计变为如今的扁平化设计,也许扁平化的时代要来了,当然我们是不是该吐槽一下,苹果什么时候也开始跟风了,自GOOGLE和微软界面扁平化过后,苹果也加入了这一队伍. Aval ...
- JSON-JObject
http://james.newtonking.com/json/help/index.html http://www.cnblogs.com/usharei/archive/2012/04/24/2 ...
- win7安装mysql
转:http://blog.csdn.net/longyuhome/article/details/7913375 Win7系统安装MySQL5.5.21图解 大家都知道MySQL是一款中.小型关系型 ...
- C# mongodb [上]
概述 MongoDB是一个高性能,开源,无模式的文档型数据库,使用C++开发.是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是 ...
- [转载]c# OpenFileDialog
string resultFile = ""; OpenFileDialog openFileDialog1 = new OpenFileDialog(); ...
- Unity3D脚本中文系列教程(十二)
http://dong2008hong.blog.163.com/blog/static/4696882720140313545332/ GameObject类,继承自Object Unity场景中所 ...
- Caching Tutorial
for Web Authors and Webmasters This is an informational document. Although technical in nature, it a ...
- Git 使用方法
Git 常用命令 git init here -- 创建本地仓库(repository),将会在文件夹下创建一个 .git 文件夹,.git 文件夹里存储了所有的版本信息.标记等内容 git remo ...
- 2013 Multi-University Training Contest 1 3-idiots
解题报告: 记录 A_i 为长度为 i 的树枝的数量,并让 A 对它本身做 FFT,得到任意选两个树枝能得到的各个和的数量.枚举第三边, 计算出所有两边之和大于第三条边的方案数,并把前两条边包含最长边 ...
- 1009 FatMouse' Trade
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...