zoukankan      html  css  js  c++  java
  • HDU-2955-Robberies

    链接:https://vjudge.net/problem/HDU-2955#author=0

    题意:

    小偷去抢钱,每个银行有一定的钱和抢这个银行被抓的概率。

    被抓概率有一个上限,在不超过这个概率的情况下能抢到的最大的钱是多少。

    思路:

    将被抓的概率转换为安全的概率。

    dp[i] 表示,抢到i的钱的安全概率是多少。

    01背包。

    代码:

    #include <iostream>
    #include <memory.h>
    #include <vector>
    #include <map>
    #include <algorithm>
    #include <cstdio>
    #include <math.h>
    
    using namespace std;
    
    typedef long long LL;
    
    const int MAXN = 1e4 + 10;
    
    double dp[MAXN];
    int a[MAXN];
    double b[MAXN];
    
    int main()
    {
        int t;
        int n;
        double v;
        scanf("%d", &t);
        while (t--)
        {
            memset(dp, 0, sizeof(dp));
            scanf("%lf%d", &v, &n);
            v = 1 - v;
            int sum = 0;
            for (int i = 1;i <= n;i++)
            {
                scanf("%d%lf", &a[i], &b[i]);
                sum += a[i];
                b[i] = 1 - b[i];//安全概率
            }
            dp[0] = 1.0;
            for (int i = 1;i <= n;i++)
            {
                for (int j = sum;j >= a[i];j--)
                    dp[j] = max(dp[j], dp[j - a[i]] * b[i]);
            }
    
            for (int i = sum;i >= 0;i--)
                if (dp[i] >= v)
                {
                    printf("%d
    ", i);
                    break;
                }
    
        }
    
        return 0;
    }
    

      

  • 相关阅读:
    考研_数据结构
    快速排序模板
    nginx设置跳转https
    PHP 构造函数
    js scroll事件
    php获取url中的参数
    js 的cookie问题
    yii2关联表
    sql优化之concat/concat_ws/group_concat
    yii2.0 url美化-apache服务器
  • 原文地址:https://www.cnblogs.com/YDDDD/p/10464872.html
Copyright © 2011-2022 走看看