Discovering Gold LightOJ

来源:互联网 发布:股票历史交易数据查询 编辑:程序博客网 时间:2024/05/23 21:55

题意:

共有n个点,每个点有权值, 必定从第一个点出发,到第n个点结束。询问经过历经上权值的期望。 其中每次跳转的步骤在1~6之间

思路:

记录下 dp[i]表示到达第i个点的概率。之后概率乘以权值

#include <cstring>#include <iostream>#include <stdio.h>using namespace std;int n;const int maxn=1005;int a[maxn];double dp[maxn];int main(){    int t;    scanf("%d",&t);    for(int cs=1;cs<=t;cs++)    {        int n;        scanf("%d",&n);        for(int i=1;i<=n;i++)            scanf("%d",&a[i]);        memset(dp,0,sizeof(dp));        dp[1]=1;        printf("Case %d: ",cs);        for(int i=1;i<=n;i++)        {            int len=min(n-i,6);            for(int j=1;j<=len;j++)                dp[i+j]+=dp[i]*(1.0/len);        }        double ans=0;        for(int i=1;i<=n;i++)            ans+=dp[i]*a[i];        printf("%lf\n",ans);    }}


原创粉丝点击