n种硬币各有cnt[i]枚,每轮下其有p[i]概率保留,问各种硬币只有它存活到最后一轮的概率。

设k轮后i硬币存活概率$a[i][k]=(1-p^k_i)^{cnt[i]}$

则最后只有第i种硬币存活概率为$\sum\limits_{k=1}^{+\infty}{\sum\limits_{j=1,j!=i}^{cnt[i]}{((1-a[i][k])-(1-a[i][k+1])) \times a[j][k-1]}}$

设k为10000次足够了

/** @Date    : 2017-10-06 16:06:03
* @FileName: HDU 5985 概率.cpp
* @Platform: Windows
* @Author : Lweleth (SoungEarlf@gmail.com)
* @Link : https://github.com/
* @Version : $Id$
*/
#include <bits/stdc++.h>
#define LL long long
#define PII pair
#define MP(x, y) make_pair((x),(y))
#define fi first
#define se second
#define PB(x) push_back((x))
#define MMG(x) memset((x), -1,sizeof(x))
#define MMF(x) memset((x),0,sizeof(x))
#define MMI(x) memset((x), INF, sizeof(x))
using namespace std; const int INF = 0x3f3f3f3f;
const int N = 1e5+20;
const double eps = 1e-8; int cnt[15];
double p[15];
double a[15][100010];
double ans[15];
double fpow(double a, int n)
{
double res = 1.0;
while(n)
{
if(n & 1)
res *= a;
a *= a;
n >>= 1;
}
return res;
} int main()
{
int T;
cin >> T;
while(T--)
{
MMF(a);
MMF(ans);
int n;
scanf("%d", &n);
for(int i = 0; i < n; i++)
scanf("%d%lf", cnt + i, p + i);
if(n == 1)
{
printf("1.000000\n");
continue;
}
for(int i = 0; i < n; i++)
{
double tp = p[i];
for(int j = 1; j <= 10000; j++)
{
a[i][j] = fpow(1.0 - tp, cnt[i]);
tp *= p[i];
}
}
for(int i = 0; i < n; i++)
{
ans[i] = 0.0;
for(int j = 1; j < 9999; j++)
{
double t = 1.00;
for(int k = 0; k < n; k++)
{
if(k == i)
continue;
else t *= a[k][j];
}
ans[i] += t * ((1.0 - a[i][j]) - (1.0 - a[i][j + 1]));
/*cout << ans[i] << " ";
cout << t << " ";
cout << ans[i] << endl;*/
}
}
for(int i = 0; i < n; i++)
printf("%.6lf%s", ans[i], i==n-1?"\n":" ");
}
return 0;
}

HDU 5985 概率的更多相关文章

  1. HDU 5985/nowcoder 207D - Lucky Coins - [概率题]

    题目链接:https://www.nowcoder.com/acm/contest/207/D 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5985 ...

  2. HDU 5985 Lucky Coins(概率)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=5985 题意:有多种类型的硬币,每种类型的硬币都有一定的数量,现在每次抛硬币,除去朝下的硬币,知道最后 ...

  3. HDU.5985.Lucky Coins(概率DP)

    题目链接 \(Description\) 有n(n<=10)种硬币,已知每种硬币的数量和它抛一次正面朝上的概率pi.进行如下过程:每次抛一次所有硬币,将正面朝下的硬币去掉.重复该过程直到只剩一种 ...

  4. HDU 5985 Lucky Coins 数学

    Lucky Coins 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5985 Description Bob has collected a lot ...

  5. hdu 1203 概率+01背包

    I NEED A OFFER! Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Sub ...

  6. HDU 4405 (概率DP)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4405 题目大意:飞行棋.如果格子不是飞行点,扔骰子前进.否则直接飞到目标点.每个格子是唯一的飞行起点 ...

  7. hdu 4465 概率称号

    http://acm.hdu.edu.cn/showproblem.php?pid=4465 第一直觉概率DP但很快被否定,发现只有一个简单的二项分布,但感情的表达,没有对生命和死亡的例子.然后找到准 ...

  8. hdu 4336 概率dp + 状压

    hdu 4336 小吃包装袋里面有随机赠送一些有趣的卡片,如今你想收集齐 N 张卡片.每张卡片在食品包装袋里出现的概率是p[i] ( Σp[i] <= 1 ), 问你收集全部卡片所需购买的食品数 ...

  9. hdu 5036 概率+bitset

    http://acm.hdu.edu.cn/showproblem.php?pid=5036 n个房间每个房间里面有一把或多把钥匙可以打开其他的门.如果手上没有钥匙可以选择等概率随机选择一个门炸开,求 ...

随机推荐

  1. “吃神么,买神么”的第二个Sprint计划(计划过程内容)

     “吃神么,买神么”项目Sprint计划 ——6.1(第二天)立会内容与进度 团队组员各自任务: 陈键.吴舒婷:继续完善前台设局与布局 林欢雯.冯美欣:开展后台的界面的设计与布局 任务的进度: 陈键. ...

  2. 【动态规划】POJ-3176

    一.题目 Description The cows don't use actual bowling balls when they go bowling. They each take a numb ...

  3. linux 环境配置要点

    cd root .bash_profile 这个是配置当前用户的环境变量 cd /etcprofile 这个是配置系统的环境变量 which xxx 查看命令的目录 source .bash_prof ...

  4. react 组件构建设计

    项目设计中,可以从顶层React元素开始,然后实现它的子组件,自顶向下来构建组件的层级组件的写法:1.引入依赖模块2.定义React组件3.作为模块导出React组件4.子组件更新父组件的机制5.父组 ...

  5. 初期测评 A 排序

    https://vjudge.net/contest/240302#problem/A 输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0 ...

  6. 斑马条码打印机GK888T打印标签是间隔的 ,不是连续的

    有间断的标签纸和连续的标签纸是两种不同的纸张类型, 打印机的标签感应器需要工作在不同的模式来跟踪感应它们. 打印机正确感应纸张才不会红灯闪烁,打印的内容才按文件设计打印到标签的对应位置上. 所以要在驱 ...

  7. spring 整合 Struts1.X [转]

    这篇博客摘自[http://blog.csdn.net/chendc201/article/details/8464008], 其中也有一些是自己增加的部分 . 第一步, 需要为 Struts 装载 ...

  8. userData Behavior

    https://msdn.microsoft.com/zh-cn/vstudio/ms531424 userData Behavior This topic documents a feature o ...

  9. Dcoker中启动mysql,并实现root远程访问

    mysql容器的运行 下载mysql 5.7.19的镜像 docker pull mysql:5.7.19 运行mysql容器,端口映射为 10036 docker run --name mysql5 ...

  10. STL Map和multimap 容器

    STL Map和multimap 容器 map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供 基于key的快速检索能力.       ...