这个题也是蛮基础的 但是最后纠结于n-5~n这个范围的计算把自己整恶心了
其实要是从n-1一直推到0就很好地避开了这个问题 n-1 是由n推来
刚刚在纠结为毛要if(i+l<=n) dp[i]+=dp[i+l];其实不这么写也没问题→_→提交还快了11ms
但是要理解为毛这推 实际上就是在前一道题的基础上多了一个航线 可以直接飞 其他的 没区别了
/********
2015.10.12-2015.10.13
hdu4405
46MS 2916K 913B C++
31MS 2884K 931B C++
********/
#include
#include
#include
using namespace std;
double dp[100005];
int n,m,x,y;
int step[100005];
int main()
{
//freopen("cin.txt","r",stdin);
while(~scanf("%d%d",&n,&m))
{
if(m==0&&n==0) break;
memset(dp,0,sizeof(dp));
memset(step,-1,sizeof(step));
for(int i=0;i=0;i--)
{
if(step[i]!=-1) {
dp[i]=dp[step[i]];
continue;
}
for(int l=1;l<=6;l++)
{
// if(i+l<=n)
dp[i]+=dp[i+l];
//else break;
}
dp[i]=dp[i]/6+1;
}
printf("%.4f\n",dp[0]);
}
return 0;
}