题目链接:http://lightoj.com/volume_showproblem.php?problem=1030
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std; const int maxn = ;
const int INF = 0x3f3f3f3f; double dp[maxn];
int a[maxn]; int main()
{
//freopen("E:\\acm\\input.txt","r",stdin);
int T;
cin>>T;
for(int cas=;cas<=T;cas++){
int N;
cin>>N;
for(int i=;i<=N;i++) scanf("%d",&a[i]);
memset(dp,,sizeof(dp));
for(int i=N-;i>=;i--){
int k = min(N-i,);
for(int j=;j<=k;j++)
dp[i] += dp[i+j]+a[i+j];
dp[i] /= k;
}
dp[] += a[];
printf("Case %d: %.6lf\n",cas,dp[]);
}
}
//dp[i] 表示i位置以后期望得到的gold数。