hdu 4405(期望dp)

来源:互联网 发布:java定时器 编辑:程序博客网 时间:2024/05/24 06:43

传送门
题解:期望dp模板题,分六种情况倒推即可,有跳跃能力的格子就直接跳(题目好像是这个意思,能跳就不丢骰子)
总结一句话:概率正推,期望倒推。

#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int MAXN=1e5+4;double dp[MAXN];int n,m,nxt[MAXN];int main() {//  freopen("hdu 4405.in","r",stdin);    while (scanf("%d%d",&n,&m)&&(n||m)) {        memset(nxt,-1,sizeof(nxt));        while (m--) {            int a,b;            scanf("%d%d",&a,&b);            nxt[a]=b;        }        memset(dp,0,sizeof(dp));        for (int i=n-1;~i;--i) {            if (~nxt[i]) dp[i]=dp[nxt[i]];            else {                for (int j=1;j<7;++j)                    dp[i]+=dp[i+j]/6.0;                dp[i]+=1;            }        }        printf("%.4lf\n",dp[0]);    }    return 0;}
原创粉丝点击