zoukankan      html  css  js  c++  java
  • AcWing 234. 放弃测试 (01分数规划)打卡

    题目:https://www.acwing.com/problem/content/236/

    题意:给你一个方程,可以有k个不选,要求最优

    思路:看了一下这个方程就知道是01分数规划的模板题,它可以选择k个不要,其实也就是排序的时候选最好的n-k个即可

    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include <algorithm>
    #include <string.h>
    #include <vector>
    #include <math.h>
    #include <limits>
    #include <set>
    #include <map>
    using namespace std;
    int n,k,a[2333],b[2333];
    double ps[2333];
    bool ok(double x)
    {
        for(int i=1;i<=n;i++) ps[i]=a[i]-x*b[i];
        sort(ps+1,ps+1+n);
        double ans=0;
        for(int i=n;i>=k+1;i--) ans+=ps[i];
        return ans>=0;
    }
    void sol()
    {
        for(int i=1;i<=n;i++) scanf("%d",a+i);
        for(int i=1;i<=n;i++) scanf("%d",b+i);
        double l=0,r=1;
        while(r-l>1e-6)
        {
            double mid=(l+r)/2;
            if(ok(mid)) l=mid; else r=mid;
        }
        printf("%.0lf
    ",l*100);
    }
    int main()
    {
        while(scanf("%d%d",&n,&k),n|k) sol();
    }
  • 相关阅读:
    vue
    手写Promise
    Promise应用
    Promise
    JS_URL模块
    模板字符串应用
    JS-OOP
    jQuery——过时,但是经典,关注核心点即可。
    MySql补充
    offset系列
  • 原文地址:https://www.cnblogs.com/Lis-/p/11299741.html
Copyright © 2011-2022 走看看