zoukankan      html  css  js  c++  java
  • hdu 1203 01背包

    转化一下问题:求一个offer也拿不到的最小概率。

    每个学校有个花费和概率,很显然是01背包问题。

     1 #include <cstdio>
     2 using namespace std;
     3 
     4 const int N = 10001;
     5 const double eps = 1e-8;
     6 double f[N];
     7 int n, m;
     8 
     9 double min( double a, double b )
    10 {
    11     if ( a + eps < b ) return a;
    12     return b;
    13 }
    14 
    15 int main ()
    16 {
    17     while ( scanf("%d%d", &n, &m) != EOF )
    18     {
    19         if ( n == 0 && m == 0 ) break;
    20         for ( int i = 0; i <= n; i++ )
    21         {
    22             f[i] = 1.0;
    23         }
    24         for ( int i = 0; i < m; i++ )
    25         {
    26             int cost;
    27             double p;
    28             scanf("%d%lf", &cost, &p);
    29             p = 1 - p;
    30             for ( int j = n; j >= cost; j-- )
    31             {
    32                 f[j] = min( f[j], f[j - cost] * p );
    33             }
    34         }
    35         f[n] = ( 1.0 - f[n] ) * 100.0;
    36         printf("%.1lf%%
    ", f[n]);
    37     }
    38     return 0;
    39 }
  • 相关阅读:
    学习第23天
    学习第22天
    学习第21天
    Servlet交互与JSP
    Cookie与Session
    servlet入门
    网络编程
    DOM4j
    xml文档对象模型doc
    反射
  • 原文地址:https://www.cnblogs.com/huoxiayu/p/4646301.html
Copyright © 2011-2022 走看看