传送门
题解:期望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;
}