#include<bits/stdc++.h>
using namespace std;
const int maxn = 120;
double dp[maxn];
int g[maxn];
int n;
void input()
{
cin>>n;
for(int i = 1;i <= n;i++)
{
cin>>g[i];
dp[i] = 0;
}
dp[1] = 1;// 按照题意 开头和结尾的概率为1
if(n > 1)dp[n] = 1;
}
int main()
{
int T, cnt = 0;;
cin>>T;
while(T--)
{
input();
for(int i = 2;i < n;i++)// 计算其他的概率
{
for(int j = i-1;j >= max(1, i - 6);j--)
{
dp[i] += dp[j]*1.0/min(6.0, n - j*1.0);
}
}
double ans = 0;
for(int i = 1;i <= n;i++)
{
ans+=dp[i]*g[i];
}
printf("Case %d: %.10lf\n", ++cnt,ans);
}
return 0;
}
lightoj 1030-B - Discovering Gold ————(概率dp水题)
最新推荐文章于 2021-02-08 23:42:32 发布