#include "cstdio"
#include "cstring"
double d[100011];
int n,m;
int trans[100011];
/*
double solve(int pos)
{
if(d[pos]<0) return d[pos];
if(pos>=n) return d[pos]=0;
if(trans[pos]!=-1) return d[pos]=solve(trans[pos]);
return d[pos]=1.+solve(pos+1)/6.+solve(pos+2)/6.+solve(pos+3)/6.+solve(pos+4)/6.+solve(pos+5)/6.+solve(pos+6)/6.;
}*/
int main(){
int x,y;
double p0=1./6;
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n==0&&m==0) break;
memset(d,0,sizeof(d));
memset(trans,0,sizeof(trans));
for(int i=0;i<m;i++)
{
scanf("%d%d",&x,&y);
trans[x]=y;
}
for(int i=n-1;i>=0;i--)
{
if(trans[i]!=0)
{
d[i]=d[trans[i]];
}else{
d[i]=1.;
for(int j=1;j<7;j++) d[i]+=d[i+j]*p0;
//printf("%lf\n",d[i]);
}
}
printf("%.4lf\n",d[0]);
}
return 0;
}
HDU 4405 Aeroplane chess
最新推荐文章于 2020-03-28 21:53:02 发布