求走完所有格子後,能得到金子數目的期望;
想了半天,還是沒有想明白期望爲什麼要逆推。藍瘦, 不過這個題總算弄明白了,感覺不是很難,繼續和概率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;
}