HDU5985 Lucky Conins 概率题

Lucky Conins

题意

最多共101010种硬币,所有的硬币之和不超过100000100000100000,每次将所有的硬币抛出,第iii中硬币正面朝上的概率为pip_ipi,将反面朝上的硬币移除掉.直至最后剩一种硬币或没有硬币则停止.若最后剩余一种硬币,则称这种硬币是幸运的,求每种硬币的幸运概率.

题解

推公式题.

假设我们要求第iii种硬币成为幸运硬币的概率,那么我们可以求其在第xxx步成为幸运硬币的概率,然后对xxx求和即可.

计算硬币iiixxx步成为幸运硬币的概率:

一.第iii种硬币,必须在第xxx步至少剩111个:

[1] : Alive[i,x]=1−(1−pix)ciAlive[i,x] = 1-(1-p_i^x)^{c_i}Alive[i,x]=1(1pix)ci

硬币iii在第xxx步存活:pixp_i^xpix,在第xxx步及之前死亡:1−pix1-p_i^x1pix,第iii种所有硬币在第xxx步都死亡(1−pix)ci(1-p_i^x)^{c_i}(1pix)ci,第iii种在第xxx步至少剩余一个硬币1−(1−pix)ci1-(1-p_i^x)^{c_i}1(1pix)ci

二. 第jjj种硬币,至少有一枚要在第x−1x-1x1步存活,第xxx步死亡

先考虑对于第jjj种硬币,它至少有一枚硬币第x−1x-1x1步存活,在第xxx步死亡的概率.

假设第jjj种有ttt枚硬币在第x−1x-1x1步存活,在第xxx步死亡:

Ccjt(pjx−1)t(1−pjx−1)cj−t(1−pj)t=Ccjt(pjx−1−pjx)t(1−pjx−1)cj−tC_{c_j}^t(p_j^{x-1})^t(1-p_j^{x-1})^{c_j-t}(1-p_j)^t = C_{c_j}^t(p_j^{x-1}-p_j^{x})^t(1-p_j^{x-1})^{c_j-t}Ccjt(pjx1)t(1pjx1)cjt(1pj)t=Ccjt(pjx1pjx)t(1pjx1)cjt

ttt111cjc_jcj求和,利用二项式定理我们得到了第jjj种硬币,它至少有一枚硬币第x−1x-1x1步存活,在第xxx步死亡的概率:

[2] : (1−pjx)cj−(1−pjx−1)cj(1-p_j^{x})^{c_j}-(1-p_j^{x-1})^{c_j}(1pjx)cj(1pjx1)cj.

三.除第iii种之外的所有硬币,至少有111枚在x−1x-1x1步存活,在第xxx步死亡

为避免重复计算

jjj是不与iii相等的数中最小的.
我们考虑是第jjj种硬币起到了这个作用,那么jjj种以后的硬币只要满足在xxx步及之前死光即可.

然后再考虑是j+tj+tj+t种硬币起到了这个作用,那么j+tj+tj+t种以后的硬币只要满足在xxx步及之前死光即可,并且要满足第j+tj+tj+t种之前的硬币必须不能起作用(即在x−1x-1x1步及之前就必须全部死光),否则会算重.

也就是说我们需要记录lft[j,x]lft[j,x]lft[j,x]表示jjj种之前的硬币全部在第x−1x-1x1步及之前就死光.记录rgt[j,x]rgt[j,x]rgt[j,x]表示jjj种之后的硬币全都在第xxx步及之前就死光.
其中lft[j,x]=∑t≠i,t&lt;j(1−ptx−1)ctlft[j,x] = \sum_{t \ne i,t &lt; j}(1-p_t^{x-1})^{c_t}lft[j,x]=t̸=i,t<j(1ptx1)ct,rgt[j,x]=∑t≠i,t&gt;jn(1−ptx)ctrgt[j,x] = \sum_{t\ne i,t &gt; j}^n(1-p_t^x)^{c_t}rgt[j,x]=t̸=i,t>jn(1ptx)ct
那么这部分的答案就是

∑j≠i((1−pjx+1)cj−(1−pjx)cj)∗lft[j,x]∗rgt[j,x]\sum_{j \ne i}((1-p_j^{x+1})^{c_j}-(1-p_j^x)^{c_j})*lft[j,x]*rgt[j,x]j̸=i((1pjx+1)cj(1pjx)cj)lft[j,x]rgt[j,x]

四.最终公式

(1−(1−pix)ci)∑j≠i(((1−pjx)cj−(1−pjx−1)cj)∗lft[j,x]∗rgt[j,x])(1-(1-p_i^x)^{c_i})\sum_{j \ne i}(((1-p_j^{x})^{c_j}-(1-p_j^{x-1})^{c_j})*lft[j,x]*rgt[j,x])(1(1pix)ci)j̸=i(((1pjx)cj(1pjx1)cj)lft[j,x]rgt[j,x])

代码

#include <iostream>
#include <algorithm>
#include <cstring>
#define pr(x) std::cout << #x << ':' << x << std::endl
#define rep(i,a,b) for(int i = a;i <= b;++i)double p[11];
int cnt[11];
int n;
const int lim = 50;
double fastpow(double x,int n) {double res = 1.0;while(n) {if(n&1) res *= x;x *= x;n >>= 1;	}return res;
}	double f(int id,int x) {return fastpow(1-fastpow(p[id],x),cnt[id]) - fastpow(1-fastpow(p[id],x-1),cnt[id]);
}double calc(int i) {double ans = 0;rep(x,1,lim) {double res = 1-fastpow(1-fastpow(p[i],x),cnt[i]);double tmp = 0,lft = 1;rep(j,1,n) {if(j == i) continue;double rgt = 1;rep(t,j+1,n) {if(i == t) continue;rgt *= fastpow(1-fastpow(p[t],x),cnt[t]);}tmp += f(j,x)*lft*rgt;lft *= fastpow(1-fastpow(p[j],x-1),cnt[j]);}ans += res * tmp;}return ans;
}
int main() {int T;std::cin >> T;while(T--) {std::cin >> n;rep(i,1,n) {std::cin >>	cnt[i] >> p[i];}if(n == 1) {printf("%.6f\n",1.0);continue;}rep(i,1,n) {if(i != 1) printf(" ");printf("%.6f",calc(i));}puts("");}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321007.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P6619-[省选联考2020A/B卷]冰火战士【树状数组二分】

正题 题目链接:https://www.luogu.com.cn/problem/P6619 题目大意 有火系战士和冰系战士有一个温度和一个战斗力&#xff0c;每次加入或删除一个战士&#xff0c;要求一个最大的kkk使得温度不低于kkk的火系战士战斗力和温度不高于kkk的冰系战士战斗力和的最小值最大。 解题思…

【数论】分数拆分

分数拆分 题目大意&#xff1a; 给出一个数k&#xff0c;问满足1/k1/x1/y且x>y的x,y有多少对 原题&#xff1a; 解题思路&#xff1a; 首先1k1x1y\frac{1}{k}\frac{1}{x}\frac{1}{y}k1​x1​y1​,变式为1k−1y1x\frac{1}{k}-\frac{1}{y}\frac{1}{x}k1​−y1​x1​,然后再…

.NET Core Community 第三个千星项目诞生:爬虫 DotnetSpider

DotnetSpider 至力于打造一个轻量化、高效率、易开发、可管理的一体化爬虫框架。它的核心要素是URL调度、基本的网页内容下载器、基于爬虫实体类的爬虫实现模式、常用数据库的支持、多线程的支持、状态的监控、运行日志、网页端管理。DotnetSpider 具有相当高的可定制性&#x…

Wannafly 挑战赛27 题解

Wannafly 挑战赛27 题目连接 https://www.nowcoder.com/acm/contest/215#question A.灰魔法师 题目 题解 考虑到可能的完全平方数只有400400400多个,因此对于每种数,直接暴力枚举所有的完全平方数计算一下就可以了. 代码 #include <iostream> #define int long lon…

【开源】OSharpNS,轻量级.net core快速开发框架发布

OSharpNS简介OSharp Framework with .NetStandard2.0&#xff08;OSharpNS&#xff09;是OSharp的以.NetStandard2.0为目标框架&#xff0c;在AspNetCore的现有组件 Microsoft.Extensions.DependencyInjection&#xff0c;Microsoft.Extensions.Configuration&#xff0c;Micro…

ATcoder-Replace Digits【线段树】

正题 题目链接:https://atcoder.jp/contests/abl 题目大意 nnn个数字开始全是111&#xff0c;要求支持 修改一个区间为一个数字&#xff08;是1∼91\sim 91∼9的数&#xff09;求所有数字串起来%998244353\%998244353%998244353 解题思路 其实就是第iii个数字乘上10i10^i10i…

【模拟】字符串展开

字符串展开 题目大意&#xff1a; 一串缩写的字符串&#xff0c;将它缩写前的输出来&#xff08;详情见原题&#xff09; 原题 解题思路&#xff1a; 直接模拟每一个字符即可 代码&#xff1a; #include<cstdio> #include<string> #include<cstring> #…

2018-2019 ACM—ICPC SEERC 题解

2018 - 2019 SEERC 题解 比赛发出来太新了,网上根本就搜不到题解,补题补的太难受了. 在这里分享一篇我自己写的题解,也方便别人补题. 题目链接 http://codeforces.com/gym/101964/attachments/download/7814/seerc-2018.pdf A.Numbers 不留坑,这题不会. B.Broken Watch 题解…

P6623-[省选联考2020A卷]树【Trie,树上启发式合并】

正题 题目链接:https://www.luogu.com.cn/problem/P6623 题目大意 一棵树&#xff0c;每个节点有一个权值valival_ivali​&#xff0c;定义disi,jdis_{i,j}disi,j​表示iii到jjj的距离。 一个节点xxx的权值定义为该节点子树中的每个节点yyy的disx,yvaljdis_{x,y}val_{j}disx…

【DP】过桥

过桥 题目大意&#xff1a; 有n个人要过一条桥&#xff0c;每个人都有自己的过桥时间&#xff0c;一条桥同时只能有2个人过&#xff08;过桥时间求较慢的一人&#xff09;&#xff0c;且要有人拿着手电筒才能过&#xff0c;只有一个手电筒&#xff0c;且不能扔手电筒&#xf…

.NET Core完成向RyuJIT的迁移

.NET Core CLR团队宣布&#xff0c;他们的.NET Core平台现在已经是完全基于其下一代即时编译器RyuJIT。有人可能不知道&#xff0c;在.NET Core中&#xff0c;编译器&#xff08;Roslyn&#xff09;会把C#代码编译成CIL&#xff08;公共中间语言&#xff09;字节码。接下来&…

P3166-[CQOI2014]数三角形【GCD】

正题 题目链接:https://www.luogu.com.cn/problem/P3166 题目大意 求一个N∗MN*MN∗M的网格上有多少个三角形。 解题思路 考虑减去共线的情况&#xff0c;我们分为两种情况。一是平行于坐标轴的&#xff0c;这个很好算。二是倾斜的&#xff0c;我们考虑如何计算斜下角的。 …

【DP】【BFS】迷之阶梯

迷之阶梯 题目大意&#xff1a; 有n层阶梯&#xff0c;如果上面一层离这一层只有1个单位高度&#xff0c;就可以直接上去&#xff0c;也可以下去一层&#xff0c;当下去k层时&#xff0c;可以向上飞2k{2}^{k}2k个单位高度&#xff0c;当然要找到一个小于等于这个高度的阶梯落…

UVA10601 Cubes - 波利亚定理

Cubes 题意 给出121212根长度相等的木棒,颜色最多有666种,问能构成的本质不同的正方体数量. 题解 根据波利亚定理公式: 设X是元素集合,G是X的置换群,{u1,u2,...,uk}\{u_1,u_2,...,u_k\}{u1​,u2​,...,uk​}是kkk种颜色的集合,CCC是XXX的任意着色集.这时,针对各颜色的数目的…

COMCMS_CORE 起步篇,如何运行和部署

前言&#xff1a;关于最近开源后&#xff0c;不少朋友问&#xff0c;怎么我下载下来&#xff0c;运行不了。或者怎么没有左边菜单。货不对板&#xff1f;还是我吃了数据&#xff1f;感言&#xff1a;开源不容易&#xff0c;更不容易的是&#xff0c;明明毫无保留&#xff0c;还…

P4313-文理分科【最小割】

正题 题目链接:https://www.luogu.com.cn/problem/P4313 题目大意 有n∗mn*mn∗m个人&#xff0c;第(i,j)(i,j)(i,j)选择文科就可以获得arti,jart_{i,j}arti,j​的价值&#xff0c;选择理科就可以获得scii,jsci_{i,j}scii,j​的价值。如果一个选择文科的人周围都选择了文科&a…

初一模拟赛总结(3.30)

成绩&#xff1a; rankrankranknamenamenamescorescorescoreT1T1T1T2T2T2T3T3T3T4T4T4111lyflyflyf360360360100100100100100100606060100100100222wjjwjjwjj170170170100100100707070000000333fyfyfy167167167100100100505050000171717444hkyhkyhky11011011010010010000000010…

UVALive7670 Asa's Chess Problem,上下界费用流,另类解法

Asa’s Chess Problem 先阐述一下带上下界的边怎么建. 带上下界的建图方法 设我要建一条边(u→v)(u\rightarrow v)(u→v),流量上界为upupup,下界为downdowndown,费用为costcostcost.则我需要建两条边. 为保证一定会有downdowndown的流量流过去,我们可以建立一条u→vu \right…

ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了

引言在使用asp.net core 进行api开发完成后&#xff0c;书写api说明文档对于程序员来说想必是件很痛苦的事情吧&#xff0c;但文档又必须写&#xff0c;而且文档的格式如果没有具体要求的话&#xff0c;最终完成的文档则完全取决于开发者的心情。或者详细点&#xff0c;或者简单…

P3201-[HNOI2009]梦幻布丁【启发式合并,链表】

正题 题目链接:https://www.luogu.com.cn/problem/P3201 题目大意 开始有nnn个布丁&#xff0c;第iii个是cic_ici​颜色的。 每次有操作 将所有颜色为xxx的布丁变为颜色yyy的。询问有多少个布丁颜色段。 解题思路 对于每次修改&#xff0c;我们可以考虑启发式合并&#xff…