您的位置:首页 > 其它

基础概率DP小结

2014-04-17 01:37 197 查看
题目链接:http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=113#overview

C题
Bag of mice:记忆化搜索。

p[ w ][ b ] 表示有w个白老鼠 b个黑老鼠是的概率。

此时若公主取得白鼠则胜,否则若公主取胜则必须有恶龙在下回合取得黑鼠。

D题 Check the difficulty of problems。

好蛋疼的一个题。

关键在于求出每个队过 i 个题的概率。

对于第 t 个队来说。

设Y[ i ] 为其过第 i 个题的概率 , N[ i ]为其不过第 i 个题的概率 , dp[ i ][ j ]为前(i+j)个题中对 i 个题,错 j 个题的概率。

则dp[ i ][ j ] = dp[ i-1 ][ j ] *Y[ i ] + dp[ i ] [ j-1 ]*N[ j ]; 

则此队做对1到n-1个题的概率为 anw = sigma(dp[ i ][ j ]) (1 <= i <= n-1 ,  j == m-i) .

此队挂零的概率为 s = N[1]*N[2]*.....*N[m]. 

好吧,做到这里就真的没思路了,翻了翻题解大都是在做集合减法。

其实每个队至少做出一个题切至少有一个队做出n到题的概率为 所有队都不挂零的概率减去所有对都做出[1,n-1]道题的概率。

K题 Kids and Prizes

开始时有N个盒子,每个盒子里都有一件奖品,M个人依次选取,问最终选走奖品个数的期望。

设 dp[i] 为 i 个人选取之后的个数期望。

显然,dp[ 1 ] = 1,dp[ i ] = (dp[ i - 1] +1)*(n-dp[i-1])/n + dp[i-1]*dp[i-1]/n. 

L题 One Person Game

初做这种题简直就是蛋碎一地。

对于期望来说,一般都是确定一个终态。然后开始倒推到初始的状态。

· 比较简单的一般为都是当前状态只与后面已经确定的状态有关。

可是这个题所有的状态都有得分为 0 的状态有关,且此状态的期望就是所求答案。

刚开始时以为是高斯消元,可是n太大,时间上受不了。

其实可以递推各个变元的系数。

设dp[ i ] 为得分为 i 时到达终态时所需要的期望步数。

则 

dp[s] = 0; s >= n+1

dp[ i ] = sigma(dp[i+j]*pj) + dp[0]*p0 + 1;

显然dp[ i ]可以表示为(dp[0]*p0+1)*x。

则最终有 dp[0] = (dp[0]*p0+1)*x.

M,N题与L题类似。

关键在于找出各个状态的关系,然后转化为要求状态,最终求出答案。

PS:代码比赛结束后就公开了,就不贴在这了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: