hdu-4089-Activation-概率dp
kuangbin題解寫的非常好,我就不贅余了。
。
一下解釋來自kuangbin:
題意:有n個人排隊等著在官網上激活游戲。
Tomato排在第m個。
對于隊列中的第一個人。有一下情況:
1、激活失敗,留在隊列中等待下一次激活(概率為p1)
2、失去連接,出隊列,然后排在隊列的最后(概率為p2)
3、激活成功,離開隊列(概率為p3)
4、server癱瘓。server停止激活,全部人都無法激活了。
求server癱瘓時Tomato在隊列中的位置<=k的概率
解析:
概率DP;
設dp[i][j]表示i個人排隊,Tomato排在第j個位置。達到目標狀態的概率(j<=i)
dp[n][m]就是所求
j==1: ? ?dp[i][1]=p1*dp[i][1]+p2*dp[i][i]+p4;
2<=j<=k: dp[i][j]=p1*dp[i][j]+p2*dp[i][j-1]+p3*dp[i-1][j-1]+p4;
k<j<=i: ?dp[i][j]=p1*dp[i][j]+p2*dp[i][j-1]+p3*dp[i-1][j-1];
化簡:
j==1: ? ?dp[i][1]=p*dp[i][i]+p41;
2<=j<=k: dp[i][j]=p*dp[i][j-1]+p31*dp[i-1][j-1]+p41;
k<j<=i: ?dp[i][j]=p*dp[i][j-1]+p31*dp[i-1][j-1];
當中:
p=p2/(1-p1);
p31=p3/(1-p1)
p41=p4/(1-p1)
能夠循環i=1->n 遞推求解dp[i].在求解dp[i]的時候dp[i-1]就相當于常數了。
在求解dp[i][1~i]時等到下列i個方程
j==1: ? dp[i][1]=p*dp[i][i]+c[1];
2<=j<=k:dp[i][j]=p*dp[i][j-1]+c[j];
k<j=i: ?dp[i][j]=p*dp[i][j]+c[j];
當中c[j]都是常數了。
上述方程能夠解出dp[i]了。
首先是迭代得到 dp[i][i].然后再代入就能夠得到全部的dp[i]了。
注意特判一種情況。就是p4<eps時候,就不會崩潰了,應該直接輸出0。
轉載于:https://www.cnblogs.com/claireyuancy/p/6707719.html
總結
以上是生活随笔為你收集整理的hdu-4089-Activation-概率dp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 哪种理财方式最安全可靠 这几种用户可以
- 下一篇: input file 获取不到Reque