zoukankan      html  css  js  c++  java
  • 2016 Multi-University Training Contest 5

    6/12 

    2016 Multi-University Training Contest 5

    期望+记忆化DP A ATM Mechine(BH)

    题意:

      去ATM取钱,已知存款在[0,K]范围内,每一次输入取出钱的金额,如果大于存款,ATM会发出警报,最多W次,问能在W次内取出所有存款的取款次数的期望值。

    思路:

      设dp[k][w]表示范围存款在[0,k]内,还有w次报警机会的期望值。状态转移方程:

    代码:

    #include <bits/stdc++.h>
    
    const int N = 2e3 + 5;
    const int INF = 0x3f3f3f3f;
    const int D = 16;
    double dp[N][D];
    bool vis[N][D];
    
    double DP(int k, int w) {
        if (k == 0) return 0;
        if (w == 0) return INF;
        if (vis[k][w]) return dp[k][w];
        double &ret = dp[k][w] = INF;
        for (int i=1; i<=k; ++i) {
            ret = std::min (ret, DP (i-1, w-1)*i/(k+1) + DP (k-i, w)*(k-i+1)/(k+1) + 1);
        }
        vis[k][w] = true;
        return ret;
    }
    
    int main() {
        int k, w;
        while (scanf ("%d%d", &k, &w) == 2) {
            printf ("%.6f
    ", DP (k, std::min (w, 15)));
        }
        return 0;
    }
    

      

  • 相关阅读:
    23-10 条件查询
    22-9 聚合函数
    关系抽取snowball
    关系抽取bootstrap
    NER
    GPT
    因果卷积 空洞卷积
    XL-NET
    transoformer-XL
    transoformer
  • 原文地址:https://www.cnblogs.com/NEVERSTOPAC/p/5738171.html
Copyright © 2011-2022 走看看