lightoj 1030

  递推,倒着递推。

 

#include<stdio.h>
#define maxn 1010
#define min(a,b) (a)>(b)?(b):(a)

int main()
{
    int T,n,cas=1;
    int a[maxn];
    double f[maxn];
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)   scanf("%d",&a[i]);
        f[n]=a[n];
        for(int i=n-1;i;i--)
        {
            int d=min(6,n-i);
            f[i]=a[i];
            for(int j=1;j<=d;j++)
                f[i]+=f[i+j]/d;
        }
        printf("Case %d: %.10lf\n",cas++,f[1]);
    }
    return 0;
}

 

posted @ 2013-08-09 16:15  yongren1zu  阅读(223)  评论(0编辑  收藏  举报