zoukankan      html  css  js  c++  java
  • Hdu 1203 I NEED A OFFER!

    题目链接——HDU1203

    题意很直观了, 中文题。

    至少得到一份offer的概率就等于 1 - 一份offer都得不到的概率。

    背包问题 , 求得到offer概率最大,也就是一份都得不到的概率最小。

    将每一份offer得不到的概率视为权值 , 重量均为所投offer所用美元

    那么dp[i] 就表示用了i美元时 , 得不到offer的最小概率

    最终结果就是1 - dp[n]

    代码如下:

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <cstdlib>
     4 #include <cmath>
     5 #include <iostream>
     6 #include <map>
     7 #include <list>
     8 #include <queue>
     9 #include <stack>
    10 #include <string>
    11 #include <algorithm>
    12 #include <iterator>
    13 using namespace std;
    14 #define MAXN 10010
    15 #define INF 0x3f3f3f3f
    16 #define MOD 1000000007
    17 #define eps 1e-6
    18 #define LL long long
    19 double dp[MAXN];
    20 int w[MAXN];
    21 double v[MAXN];
    22 int n , m;
    23 void solve()
    24 {
    25     for(int i = 0; i < m; i ++)
    26         scanf("%d %lf",&w[i] , &v[i]);
    27     for(int i = 0; i <= n; i ++) dp[i] = 1;
    28     for(int i = 0; i < m; i ++)
    29         for(int j = n; j >= w[i]; j --)
    30             dp[j] = min(dp[j] , dp[j - w[i]] * (1.0 - v[i]));    
    31     printf("%.1lf%%
    ",(1.0 - dp[n]) * 100);
    32 }
    33 
    34 int main()
    35 {
    36     while(scanf("%d %d",&n,&m) && (n+m))
    37     {
    38         solve();
    39     }
    40     return 0;
    41 }
    View Code
  • 相关阅读:
    java学习
    瓜娃《guava》api快速入门
    List,set,Map 的用法和区别
    css selector
    字节流与字符流区别
    jsoup的elements类
    javaio-printwriter
    map遍历的四种方法
    kafka集群和zookeeper集群的部署,kafka的java代码示例
    Ubuntu12.04安装中文字体(转)
  • 原文地址:https://www.cnblogs.com/By-ruoyu/p/4467642.html
Copyright © 2011-2022 走看看