Uva 12723 期望

来源:互联网 发布:淘宝联盟怎么做高佣 编辑:程序博客网 时间:2024/05/29 11:51

题意不说了;

大概思路 :求出到达每一行的概率,求出每一行的可以获得的val期望,然后分别对应相乘求和就是了;

#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;#define N 100007double hang[516];double dp[514];double down[13];double hangval[504][25],hangrate[504][24];double sum[13];int main(){    int t,_case = 1,i,j;    int n,m,k,Q;    scanf("%d",&t);    while(t--)    {        memset(dp,0,sizeof(dp));        scanf("%d%d",&n,&k);        for(i=1;i<=k;i++)            scanf("%lf",&down[i]);        for(i=1;i<=n;i++)        {            scanf("%d",&Q);            hang[i] = 0.0;            for(j=1;j<=Q;j++)            {                scanf("%lf%lf",&hangval[i][j],&hangrate[i][j]);                hang[i] += hangval[i][j]*hangrate[i][j];            }        }        dp[1] = 1;        for(i=2;i<=n;i++)        {            for(j=1;j<=k;j++)            {                if(i>=j+1)                    dp[i] += dp[i-j]*down[j];            }        }        double ans = 0;        for(i=1;i<=n;i++)           ans+= dp[i]*hang[i];        printf("Case #%d: %.6lf\n",_case++,ans);    }    return 0;}


 

0 0
原创粉丝点击