zoukankan      html  css  js  c++  java
  • LightOJ 1030 Discovering Gold(期望 概率)

    正推,到达i的概率为p[i],要注意除了1和n外,到达i的概率并不一定为1

    概率表达式为p[i] += p[j] / min(n - j, 6)

    从j带过来的期望为exp[i] += exp[j] / min(n - j, 6)

    又到达i时有价值val[i],到达i的概率为p[i],故exp[i] += val[i] * p[i]

    #include<cstdio>
    #include<iostream>
    #include<cstdlib>
    #include<cstring>
    #include<string>
    #include<algorithm>
    #include<map>
    #include<queue>
    #include<vector>
    #include<utility>
    using namespace std;
    typedef long long LL;
    const int N = 1008, INF = 0x3F3F3F3F;
    #define MS(a, num) memset(a, num, sizeof(a))
    #define PB(A) push_back(A)
    #define FOR(i, n) for(int i = 0; i < n; i++)
    double exp[N], p[N];
    int val[N];
    int main(){
        int t;
        cin>>t;
        for(int cas= 1; cas <= t;cas++){
            int n;
            cin>>n;
            for(int i =1; i <= n; i++){
                scanf("%d", &val[i]);
            }
            p[1] = 1;
            exp[1] = val[1];
            for(int i = 2; i <= n; i++){
                exp[i] = p[i] = 0;
                for(int j = max(1, i - 6); j < i; j++){
                    exp[i] += exp[j] / min(n - j, 6);
                    p[i] += p[j] / min(n - j, 6);
                }
                exp[i] += val[i] * p[i];
            }
            printf("Case %d: %.10f
    ", cas, exp[n]);
        }
        return 0;
    }
    

      

  • 相关阅读:
    celery 转自:https://www.cnblogs.com/pyedu/p/12461819.html
    k8s 学习笔记
    linux 学习笔记3
    yaml initc
    vi 块操作
    curl
    知名IT互联网公司
    ajax 上传文件给webapi(带basic认证)
    C# 后台请求api
    mvc 母版页保持不刷新
  • 原文地址:https://www.cnblogs.com/IMGavin/p/5754604.html
Copyright © 2011-2022 走看看