zoukankan      html  css  js  c++  java
  • HDU 1203 背包问题

    题目大意:

    根据学校的申请费用,根据已有的钱得到最大的offer率

    这里很明显就是一个价值为概率的背包问题

    计算两个offer合并的概率 为a + b - a*b

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <iostream>
     4 using namespace std;
     5 const int N = 10005;
     6 
     7 double dp[N];
     8 
     9 int main()
    10 {
    11     int n , m , a;
    12     double b;
    13     while(scanf("%d%d" , &m , &n)){
    14         if(n == 0 && m == 0) break;
    15         memset(dp , 0 , sizeof(dp));
    16         for(int i = 0 ; i<n ; i++){
    17             scanf("%d%lf" , &a , &b);
    18             for(int j = m ; j>=a ; j--){
    19                 double tmp = dp[j-a] + b - dp[j-a]*b;
    20                 dp[j] = max(dp[j] , tmp);
    21             }
    22         }
    23         printf("%.1f%%
    " , dp[m] * 100);
    24     }
    25     return 0;
    26 }
  • 相关阅读:
    RPA浏览器及word需要注意的点
    捕获alert弹框
    创建文件夹
    Excel 筛选功能
    RPA_播放语音
    flask路由
    python操作git
    RPA_关键词识别
    初始flask
    RPA中需要注意的问题
  • 原文地址:https://www.cnblogs.com/CSU3901130321/p/4183782.html
Copyright © 2011-2022 走看看