LightOJ1030(概率DP)

求走完所有格子後,能得到金子數目的期望;
想了半天,還是沒有想明白期望爲什麼要逆推。藍瘦, 不過這個題總算弄明白了,感覺不是很難,繼續和概率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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章