解题报告(十七)概率与期望(概率论)(ACM / OI)
Posted 繁凡さん
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解题报告(十七)概率与期望(概率论)(ACM / OI)相关的知识,希望对你有一定的参考价值。
繁凡出品的全新系列:解题报告系列 —— 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数( 1 ∼ 5 1 \\sim 5 1∼5),以模板题难度 1 1 1 为基准。
这样大家在学习算法的时候就可以执行这样的流程:
%
阅读我的【学习笔记】 / 【算法全家桶】学习算法 ⇒ \\Rightarrow ⇒ 阅读我的相应算法的【解题报告】获得高质量题单 ⇒ \\Rightarrow ⇒ 根据我的一句话题解的提示尝试自己解决问题 ⇒ \\Rightarrow ⇒ 点开我的详细题解链接学习巩固(好耶)%
解题报告系列合集:【解题报告系列】超高质量题单 + 题解(ICPC / CCPC / NOIP / NOI / CF / AT / NC / P / BZOJ)
本期题单前置知识:【学习笔记】《概率与期望全家桶》(ACM / OI)概率与期望知识小结
目录
- 概率
- 期望
- A. UVA12230 过河 Crossing Rivers(期望)
- B. P4316 绿豆蛙的归宿(期望DP拓扑排序DP)
- C. P1850 [NOIP2016 提高组] 换教室(期望DP)
- D. P3232 [HNOI2013]游走(期望DP + 列方程高斯消元)
- E. AcWing 218. 扑克牌(简单期望DP)
- F. P1291 [SHOI2002]百事世界杯之旅(收集问题)
- G. P1654 OSU!(立方的期望)
- H. P3802 小魔女帕琪(期望 + 组合数学)
- I. 牛客挑战赛36 D. 排名估算( “概率论全家桶”,好题,拉格朗日插值求自然数 k 次幂之和)
- J. 牛客挑战赛38 C.圆桌聚餐(条件概率,贝叶斯公式,期望 dp,思维)
- K. ABC 199 F - Graph Smoothing(数学期望,图的邻接矩阵幂的意义,矩阵快速幂)
- L. 牛客挑战赛 38 D.突击检查(期望 + 思维)
- M. P4550 收集邮票(期望DP)
- N. UVA1639 Candy(防爆对指数 + 二项分布 + 期望)
- O. P4206 [NOI2005] 聪聪与可可 (记忆化搜索期望DP + SPFA预处理)
- P. P4745 [CERC2017]Gambling Guide(期望DP + 最短路)
- Q. UVA12177 First Knight(期望DP + 高斯消元 + 优化)
- R. CF24D Broken robot(期望DP + 高斯消元)
- S. UVA 10900 So you want to be a 2n-aire?(连续型概率,均匀分布)
- T. CF1139D Steps to One(期望,莫比乌斯反演,杜教筛)
- U. LightOJ 1274 Beating the Dataset(期望,贡献和思想)
- V. 牛客练习赛82 D. Mocha 的数据包
- W. HDU 4579 Random Walk(期望 + 高斯消元)
- X. HDU 6829 Borrow
- Y. HDU 6052 To my boyfriend(贡献和)
- Z. HDU 4870 Rating
- α. LightOJ 1151 Snakes and Ladders
- β. P4457 [BJOI2018]治疗之雨(期望 + 高斯消元)
- γ. P3600 随机数生成器
概率
A. UVA11722 Joining with Friend(几何概型)
Problem
两人会面,第一个人去的时间在[t1, t2]中,第二个人去的时间在[s1, s2]中,两人会面成功的话,到达会面地点的时间差不能大于w,求两人成功会面的概率。
Solution
设 a a a 在 x x x 时间到达, b b b 在 y y y 时间到达,即 ∣ y − x ∣ < = w |y-x|<=w ∣y−x∣<=w 时可以碰面。即 x − w < = y < = x + w x-w<=y<=x+w x−w<=y<=x+w
显然答案就是总面积减去阴影面积。
我们设上面的白色面积为s1,中间阴影面积s2,下面白色面积为s3,则概率为 s 2 s 1 + s 2 + s 3 = ( s 2 + s 1 ) − s 1 s 1 + s 2 + s 3 \\cfrac{s2}{s1+s2+s3}=\\cfrac{(s2+s1)-s1}{s1+s2+s3} s1+s2+s3s2=s1+s2+s3(s2+s1)−s1
即我们可以直接计算直线 y = x + w , y = x − w y=x+w,y=x-w y=x+w,y=x−w 切割的四边形上面交的面积,相减即可。
根据四边形形状长度的不同,直线 y = x + w , y = x − w y=x+w,y=x-w y=x+w,y=x−w 与四边形的交一共有六种情况:
分类讨论即可。
Time
O ( 1 ) O(1) O(1)
Code
// Problem: UVA11722 Joining with Friend
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/UVA11722
// Memory Limit: 0 MB
// Time Limit: 1000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include <bits/stdc++.h>
using namespace std;
const int N = 50007;
int n, m, t;
double s1, s2, t1, t2, w;
int kcase;
double get_area(double b)
{
if(t1 + b >= s2) return 0;
if(t2 + b <= s1) return (t2 - t1) * (s2 - s1);
if(t1 + b >= s1 && t2 + b <= s2) return (t2 - t1) * (s2 - t2 - b + s2 - t1 - b) * 0.5;
if(t1 + b >= s1 && t2 + b > s2) return (s2 - b - t1) * (s2 - b - t1) * 0.5;
if(t1 + b <= s1 && t2 + b >= s2) return (s2 - s1) * (s1 - b - t1 + s2 - b - t1) * 0.5;
if(t1 + b < s1 && t2 + b < s2 && t2 + b > s1) return (t2 - t1) * (s2 - s1) - (t2 + b - s1) * (t2 + b - s1) * 0.5;
return 0;
}
void solve()
{
scanf("%lf%lf%lf%lf%lf", &t1, &t2, &s1, &s2, &w);
printf("Case #%d: ", ++ kcase);
double tot = (t2 - t1) * (s2 - s1);
double up = get_area(-w) - get_area(w);
printf("%.8f\\n", up / tot);
}
int main()
{
scanf("%d", &t);
while(t -- ) {
solve();
}
return 0;
}
B. UVA11021 Tribles(概率DP)
Weblink
https://www.luogu.com.cn/problem/UVA11021
Problem
一开始有 k k k 个麻球,所有麻球只能活 1 1 1 天,死的时候有 p i p_i pi 的概率产生 i i i 只这种麻球(也只能活一天, 0 ≤ i < n 0\\le i< n 0≤i<n),询问 m m m 天内所有麻球都死的概率(包括m天前死亡的情况)
Solution
显然每个麻球是相互独立的,我们可以设 f [ i ] f[i] f[i] 表示一个麻球第 i i i 天以内死光的概率,则 k k k 个麻球在第 i i i 天内死亡的概率是 f [ i ] k f[i]^k f[i]k 。
我们现在仅考虑一只麻球的情况,即该麻球第一天繁衍多少个,它们在接下来的 i − 1 i−1 i−1 天内死绝了。
根据全概率公式
P ( A ) = ∑ i = 1 n P ( A ∣ B i ) × P ( B i ) P(A)=\\sum_{i=1}^{n}P(A|B_i)\\times P(B_i) P(A)=i=1∑nP(A∣Bi)×P(Bi)
我们就可以设计转移方程:
f [ i ] = ∑ j = 0 n − 1 p [ j ] f [ i − 1 ] j f[i]=\\sum_{j=0}^{n-1}p[j]f[i-1]^j f[i]=j=0∑n−1p[j]f[i−1]j
对于每一个麻球来说都有 n n n 种选择。其中 p j ( f i − 1 ) j p_{j}(f_{i-1})^{j} pj(fi−1)j 的表示,生了 j j j 个麻球,这些麻球在 i − 1 i-1 i−1 天内死光,即第一只 a a a 及其后代需要在 i i i 天内死光,那么第一只的直系后代 b b b 及其后代需要在 i − 1 i-1 i−1 天内全部死光,因为第一只需要活一天,则 b b b 的直系后代及其后代需要在 i − 2 i-2 i−2天全部死光( b b b 需要活了一天),即 f [ i ] f[i] f[i]由 f [ i − 1 ] f[i-1] f[i−1] 转移过来, f [ i − 1 ] f[i-1] f[i−1] 由 f [ i − 2 ] f[i-2] f[i−2] 转移过来。
因为 k k k 只麻球相互独立, 对于两个独立事件 A , B A,B A,B, P ( A B ) = P ( A ) × P ( B ) P(AB)=P(A)\\times P(B) P(AB)=P(A)×P(B)
最后的答案就是 f [ m ] k {f[m]}^{k} f以上是关于解题报告(十七)概率与期望(概率论)(ACM / OI)的主要内容,如果未能解决你的问题,请参考以下文章