码迷,mamicode.com
首页 > 其他好文 > 详细

概率dp

时间:2014-06-25 15:14:53      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   http   tar   

留坑,必填,学习kuangbin大神!!!!!加油!!

 

 

 

1. POJ 2096 Collecting Bugs    (期望DP)

题意:我直接没看题目,看的别人题解里面的题目意思。大概就是有s个子系统,n种bug。某人每天能发现一个bug,这个bug属于一个分类,同时也属于一个子系统,每个bug属于某个子系统的概率是1/s,属于某种分类的概率是1/n 问发现n种bug,每个子系统都发现bug的天数的期望。
分析:概率dp第一题,是从kuangbin大神博客的帖子开始学习的。
题解:果然是dp太渣了,这个入门题目都搞了半天,应该说看别人题解看了半天,看完之后能推出状态转移方程式就ok了。
//转载博客http://www.cnblogs.com/zhj5chengfeng/archive/2013/03/02/2939597.html
令 f[i][j] 表示已经找到了 i 种 bug,且 j 个子系统至少包含一个 bug,距离完成目标需要的时间的期望。
目标状态是 f[0][0]
再过一天找到一个 bug 可能是如下的情况:

        1. 这个 bug 的种类是 已经找到的 并且 出现在 已经找到 bug 的子系统中

        2. 这个 bug 的种类是 已经找到的 并且 出现在 没有找到 bug 的子系统中

        3. 这个 bug 的种类是 没有找到的 并且 出现在 已经找到 bug 的子系统中

        4. 这个 bug 的种类是 没有找到的 并且 出现在 没有找到 bug 的子系统中
经过简单的分析,不难得出如下递推过程:

        f[i][j]   =    i/n*j/s*f[i][j]

                     + i/n*(s-j)/s*f[i][j+1]

                     + (n-i)/n*j/s*f[i+1][j]

                     + (n-i)/n*(s-j)/s*f[i+1][j+1]
移项可得
         (1-(i*j)/(n*s))f[i][j] =    i/n*(s-j)/s*f[i][j+1]
                                   + (n-i)/n*j/s*f[i+1][j]
                                   + (n-i)/n*(s-j)/s*f[i+1][j+1]

bubuko.com,布布扣
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define maxn 1010
double dp[maxn][maxn];
int n,s;
int main()
{
    while(~scanf("%d %d",&n,&s))
    {
        dp[n][s] = 0;
        for(int i=n;i>=0;i--)
        {
            for(int j=s;j>=0;j--)
            {
                if(i==n && j==s)    continue;
                dp[i][j] = ( dp[i][j+1]*i*(s-j) + dp[i+1][j]*(n-i)*j + dp[i+1][j+1]*(n-i)*(s-j) + n*s )/(n*s - i*j);
            }
        }    
        printf("%.4lf\n",dp[0][0]);        
    }
        
    return 0;
}
代码君

 

 

2. HDU 3853 LOOPS    (期望DP)

题意:在一个迷宫里面,每一个格子(r,c)中有一个传送门,传送门可以把人传送到(r,c),(r+1,c),(r,c+1)三个位置的其中一个,分别有不同的概率,问从起点到R,C终点的期望是多少。
分析:和上题一样是一道求期望的DP

概率dp,布布扣,bubuko.com

概率dp

标签:style   class   blog   code   http   tar   

原文地址:http://www.cnblogs.com/BigBallon/p/3806596.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!