zoukankan      html  css  js  c++  java
  • 牛客网暑期ACM多校训练营(第五场) Agpa (最大化平均值)

    题目大意:

    给定 n 门课以及它们的学分和绩点,定义总绩点是所有课的加权平均数,给定一个数 k, 你可以删除最多 k 门课,求你的总绩点最大能到多少
     

     

     

     

    分析:

    上面是牛客的官方题解,其实就是移项, 然后按照 c[i] - D 排一下序 然后求前几个的和

    AC代码:

    #include<bits/stdc++.h>
    using namespace std;
    int n,k;
    const int maxn = 1e7+5;
    double t[maxn];
    struct no
    {
        int s,c;
    }a[maxn];
    bool cmp(int x,int y)
    {
        return x>y;
    }
    bool bl(double d) {
        double res = 0;
        for (int i = 0; i < n; i++) {
            t[i] = a[i].s * (a[i].c - d);
        }
        sort(t, t + n, cmp);
        for (int i = 0; i < n - k; i++) {
            res += t[i];
        }
        if (res >= 0) return 1;
        return 0;
    }
    int main( )
    {
        scanf("%d%d",&n,&k);
        for(int i=0 ; i<n ; i++)
        scanf("%d",&a[i].s);
        for(int i=0 ; i<n ; i++)
        scanf("%d",&a[i].c);
        double l=0,r=1001;
        double ans=0;
        while (r - l >= 1e-8) {
            double mid = (l + r) / 2.0;
            if (bl(mid)) {
                ans = mid;
                l = mid + 0.000000001;
            } else {
                r = mid - 0.000000001;
            }
        }
        printf("%.11lf
    ",ans);
        return 0;
    }
    View Code
  • 相关阅读:
    MyBatis总结(一)
    MyBatis简介
    数据持久化与ORM
    主流框架介绍
    JSP数据交互(一)
    tomcat端口被占用
    动态网页开发基础
    jQuery内容
    正则表达式
    初始Mybatis
  • 原文地址:https://www.cnblogs.com/shuaihui520/p/9425314.html
Copyright © 2011-2022 走看看