求走完所有格子后,能得到金子数目的期望;
想了半天,还是没有想明白期望为什么要逆推。蓝瘦, 不过这个题总算弄明白了,感觉不是很难,继续和概率DP拼命,不是你死就是我亡。啊啊啊啊啊啊啊啊~
code:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<iostream>
#include<string>
#include <set>
#include<time.h>
//a&3==a%4
using namespace std ;
#define ll long long
#define mem(a) memset(a,0,sizeof(a))
const double eps = 1e-8;
const int maxn = 110010;//须填写
const int inf = 0x3f3f3f3f;
double f[1010];
int main()
{
int _case;
scanf("%d",&_case);
for(int ii=1;ii<=_case;ii++)
{
int n;
memset(f,0,sizeof(f));
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%lf",&f[i]);
}
for(int i=n-2;i>=0;i--)
{
int dis=6;
if(n-i-1<6)
dis=n-i-1;
for(int j=1;j<=dis;j++)
{
f[i]+=(f[j+i]/(1.00*dis));
}
//cout<<f[i]<<endl;
}
printf("Case %d: %.10f\n",ii,f[0]);
}
return 0;
}