#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
using namespace std;
double d[110000];
int n, m, line[110000];
void dp()
{
for(int i=n-1; i>=0; i--)
{
d[i]=0;
if(line[i]!=-1)
d[i]=d[line[i]];
else
{
for(int j=1; j<=6; j++)
d[i]+=d[i+j]/6;
d[i]+=1;
}
}
}
int main()
{
while(scanf("%d%d", &n, &m) && n+m)
{
memset(line, -1, sizeof(line));
memset(d, 0, sizeof(d));
while(m--)
{
int x, y;
scanf("%d%d", &x, &y);
line[x]=y;
}
dp();
printf("%.4lf\n", d[0]);
}
return 0;
}
HDU - 4405 Aeroplane chess(概率dp)
最新推荐文章于 2021-01-19 20:52:36 发布