• POJ2976 Dropping tests(01分数规划)


    题意

    给你n次测试的得分情况b[i]代表第i次测试的总分,a[i]代表实际得分。

    你可以取消k次测试,得剩下的测试中的分数为

    问分数的最大值为多少。

    题解

    裸的01规划。

    然后ans没有清0坑我半天。

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cmath>
     4 #include<cstdio>
     5 #include<algorithm>
     6 using namespace std;
     7 const int N=2000;
     8 double a[N],b[N],c[N],ans;
     9 int n,k;
    10 bool judge(double x){
    11     double tmp=0;
    12     for(int i=1;i<=n;i++){
    13         c[i]=a[i]-x*b[i];
    14     }
    15     sort(c+1,c+1+n);
    16     for(int i=k+1;i<=n;i++){
    17         tmp+=c[i];
    18     }
    19     if(tmp>=0)return true;
    20     else return false;
    21 }
    22 int main(){
    23     scanf("%d%d",&n,&k);
    24     while(n!=0||k!=0){
    25         for(int i=1;i<=n;i++){
    26             scanf("%lf",&a[i]);
    27         }
    28         for(int i=1;i<=n;i++){
    29             scanf("%lf",&b[i]);
    30         }
    31         double l=0.00;double r=1.00;
    32         ans=0;
    33         while(1e-7<=r-l){
    34             double mid=(l+r)/2;
    35             if(judge(mid)){
    36                 ans=mid; 
    37                 l=mid+1e-7;
    38             }
    39             else r=mid-1e-7;
    40         }
    41         printf("%0.lf
    ",ans*100);
    42         scanf("%d%d",&n,&k);
    43     } 
    44 }
    View Code
  • 相关阅读:
    Python基础学习笔记(一)
    前端之jQuery
    JavaScript概述
    前端CSS
    前端HTML
    WIN10下Mysql安装使用
    python 创建线程
    Python 创建进程
    python day24模块
    python常用模块2(序列化,pickle,shelve,json,configparser)
  • 原文地址:https://www.cnblogs.com/Xu-daxia/p/9418025.html
Copyright © 2020-2023  润新知