CF908D New Year and Arbitrary Arrangement 期望DP

Posted itst

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CF908D New Year and Arbitrary Arrangement 期望DP相关的知识,希望对你有一定的参考价值。

题目传送门

题意:给出正整数$pa,pb,k$,最开始你有一个空串,每一次你有$frac{pa}{pa + pb}$的概率向串最后放一个$a$,有$frac{pb}{pa + pb}$的概率向串最后放一个$b$,当串中$ab$子序列的数量$geq K$时停止,问在操作停止时串中$ab$子序列个数的期望,对$10^9+7$取模。$pa,pb leq 10^6,k leq 1000$


设$f_{i,j}$表示当前串内有$i$个$a$,$j$个$ab$子序列的子序列个数期望(至于为什么不是设$a$和$b$,因为实际上$b$影响的是$ab$的数量,而只知道$a$和$b$的多少,$ab$的多少是不确定的)。可以知道转移方程为:$f_{i,j}=f_{i,i+j} imes frac{pb}{pa+pb} + f_{i+1,j} imes frac{pa}{pa+pb}$,但是实际上有情况一直放$a$而不放$b$,不依靠一些数学方法状态量会爆炸。

接下来是愉悦的推公式时间~~

我们可以知道当$i+j geq k$时,只要再放一个$b$就将停止操作,那么我们的期望可以写作$frac{pb}{pa + pb} imes sumlimits_{p=0}^infty [(frac{pa}{pa + pb})^p imes (i + j + p)]$。不妨设$S = sumlimits_{p=0}^infty [(frac{pa}{pa + pb})^p imes (i + j + p)]$,那么$frac{pa}{pa + pb}S = sumlimits_{p=0}^infty [(frac{pa}{pa + pb})^{p+1} imes (i + j + p)]$,相减得$frac{pb}{pa + pb}S = i + j + sumlimits_{p=1}^infty (frac{pa}{pa + pb})^p$,又由无穷递减等比数列公式得$sumlimits_{p=1}^infty (frac{pa}{pa + pb})^p = frac{frac{pa}{pa+pb}}{1-frac{pa}{pa+pb}}=frac{pa}{pb}$,所以我们需要求的期望就是$i+j+frac{pa}{pb}$

 1 #include<bits/stdc++.h>
 2 #define MOD 1000000007
 3 #define ll long long
 4 #define MAXN 1001
 5 using namespace std;
 6 
 7 ll dp[MAXN][MAXN];
 8 int K , pa , pb;
 9 
10 inline ll ksm(ll a , ll b){
11     ll times = 1;
12     while(b){
13         if(b & 1)
14             times = times * a % MOD;
15         a = a * a % MOD;
16         b >>= 1;
17     }
18     return times;
19 }
20 
21 inline ll calc(ll a , ll b){
22     if(a + b < K)
23         return dp[a][b];
24     else
25         return (a + b + pa * ksm(pb , MOD - 2)) % MOD;
26 }
27 
28 int main(){
29     cin >> K >> pa >> pb;
30     for(ll i = K - 2 ; i >= 0 ; i--)
31         for(ll j = K - i - 1 ; j ; j--)
32             dp[i][j] = (calc(i + j , j) * pb + pa * calc(i , j + 1)) % MOD * ksm(pa + pb , MOD - 2) % MOD;
33     cout << calc(0 , 1);
34     return 0;
35 }

 

以上是关于CF908D New Year and Arbitrary Arrangement 期望DP的主要内容,如果未能解决你的问题,请参考以下文章

CF1284E New Year and Castle Construction

CF1284E New Year and Castle Construction

CF1279F New Year and Handle Change 题解

CF611H New Year and Forgotten Tree

CF908G New Year and Original Order

[cf908G]New Year and Original Order