期望概率DP总结

主要是codeforces上的。

B. Dreamoon and WiFi

在这道题发现一个重要的问题,当题目输出精度有较高要求时,输出多位,比如这道题里出现了1e-9,那么输出10位小数。

C. Journey

这道题输出同样需要使用printf输出更多的小数位,cout真的不能再用了

Codeforces 148D D Bag of mice

f[i][j]表示公主面对还剩下i个白色老鼠,j个黑色老鼠的局面获胜的概率。根据题意进行转移。

http://poj.org/problem?id=2151

f[i][j][k]:表示第  i 个队在前 j 题中做对 k 道的概率。

所有队都至少做出一道题且至少有一个队做出了 n 道题,这个限制正向不好做,考虑反向容斥。

将所有队的问题转化为两部分,一个是所有队都至少做出一道题,一个是所有队在都至少做出一道题的基础上,每队都只做了<n的题数,两者相减,就是问题的答案。

D - Just another Robbery

背包dp+概率。

求被抓概率,和不被抓概率都行。

UVA11762 Race to 1

多组数据,但是n的范围1e5,直接一个一个求就行,x的约数数量只有<=sqrt(x)个,直接dp就行。

P1654 OSU!

经典的概率增量贡献,有多种方法思考。

The 2024 CCPC Online Contest - E.随机过程 Codeforces

Problem - 518D - Codeforces

注意一个问题,对于后面的人,他的贡献是在前面的人都上去的基础上的,不能够只考虑他自己上电梯的概率p,还必须考虑他前面的人上去的概率,前面的人全上去的概率与使用的时间有关,所以dp的状态需要加一维时间,第二维是人数。

Problem - 107B - Codeforces

 这道题里,出现了非常大的C(n,m),并且要求小数输出,此时不用担心精度问题,因为答案是一个小数而且精度要求不高,只需要担心数值范围是否够用,开成long double完全没有问题。

 Problem - 696B - Codeforces

 经典树上期望,求每个点的期望到达时间。

Problem - 77B - Codeforces

积分的时候注意第二维的参数的取值范围,它有两个限制条件,必须全部满足。

画个坐标系可以发现,根据a,b的大小,直线x=4y与随机区域的相交形式不同。

Problem - 626D - Codeforces

 

总结:
  1.利用期望的定义,E(Y)=sum( p[k]*k )。

  单点贡献。考虑每个单点对总体的贡献,求出单点的概率乘上单点的贡献,就是总贡献。

  直接求P(k)比较难求的时候,可以尝试求P(>=k),相减就可以。

  使用二项式反演:

     

 

  2.dp处理。

 

posted @ 2024-09-13 15:25  gisfire&  阅读(11)  评论(0编辑  收藏  举报