zoukankan      html  css  js  c++  java
  • HDU2955 Robberies DP

    题目就是概率的问题,意思是去抢A银行,被捉的概率是ai,抢B银行,被捉的概率是bi,因此不被捉的概率是(1-ai)*(1-bi)......因此整个题目我们用逃避概率来计算。

    代码如下:

    #include <cstdio>
    #include <cstring>
    #include <cstdlib> 
    using namespace std;
    
    struct Node
    {
        int m;
        double poss;
    }e[105];
    
    double dp[10005];
    
    int N, max;
    
    double poss;
    
    inline double Max(double x, double y)
    {
        return x > y ? x : y;
    }
    
    inline void zero_one(int x)
    { 
        for (int i = max; i >= e[x].m; --i) {
            if (dp[i-e[x].m] != -1) {
                dp[i] = Max(dp[i], dp[i-e[x].m]*e[x].poss);
            }
        }
    }
    
    void DP()
    {
        for (int i = 0; i < N; ++i) {
            zero_one(i);
        }
    }
    
    int main()
    {
        int T; 
        scanf("%d", &T);
        while (T--) { 
            max = 0; 
            dp[0] = 1;
            scanf("%lf %d", &poss, &N);
            poss = 1-poss;
            for (int i = 0; i < N; ++i) {
                scanf("%d %lf", &e[i].m, &e[i].poss); 
                e[i].poss = 1-e[i].poss;
                max += e[i].m;
            }
            for (int i = 1; i <= max; ++i) {
                dp[i] = -1;
            }
            DP();
            for (int i = max; i >= 0; --i) {
                if (dp[i] >= poss) {
                    printf("%d\n", i);
                    break;
                }
            }
        }
        return 0;
    }
  • 相关阅读:
    第五章总结
    第二章总结
    第一章、基础知识总结
    实验 9 根据材料编程
    实验5
    汇编实验4
    实验 3 编程、编译、连接、跟踪
    实验 2 用机器指令和汇编指令编程
    汇编-实验一
    react面试笔录
  • 原文地址:https://www.cnblogs.com/Lyush/p/2441408.html
Copyright © 2011-2022 走看看