• lightOJ 1030(期望)


    题意:有一个迷宫是1×n的格子,一个人每到一个格子就能够把这个格子内的金子所有拿走,刚開始站在第1个格子,然后開始掷骰子得到点数x,他就要从当前位置走到加x的位置。假设发现位置是大于n的就又一次掷骰子直到符合,假设他到了第n个格子就能够结束了。

    问这个人从迷宫里得到的金子的期望是多少。
    题解:能够知道对于每一个位置。下一个位置仅仅能是后6个。所以从这个位置处得到的金子的期望f(i) = (f(i + 1) + f(i + 2) + … + f(i + 6)) / 6。假设这个位置后不足6。f(i) = (f(i + 1) + … + f(n)) / (n - i)。

    #include <stdio.h>
    #include <math.h>
    const int N = 105;
    int n, a[N];
    double f[N];
    
    int main() {
        int t, cas = 1;
        scanf("%d", &t);
        while (t--) {
            scanf("%d", &n);
            for (int i = 0; i < n; i++)
                scanf("%d", &a[i]);
            f[n - 1] = a[n - 1];
            for (int i = n - 2; i >= 0; i--) {  
                f[i] = 0;
                int cnt = n - i - 1;
                if (cnt > 6)
                    cnt = 6;
                for (int j = i + 1; j <= i + cnt; j++)
                    f[i] += f[j];
                f[i] = f[i] / cnt + a[i];
            }
            printf("Case %d: %.10lf
    ", cas++, f[0]);
        }
        return 0;
    }
  • 相关阅读:
    白话SSL协议的握手过程
    PHP进程高负载
    Apache不定时宕机
    KindEditor
    过滤进程命令
    LAMP 平台必建安装包
    scp command
    ssl_request_log日志拆分
    Day01:Python入门
    Day03:集合、文件处理和函数基础
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5364965.html
Copyright © 2020-2023  润新知