zoukankan      html  css  js  c++  java
  • CF-1111B-Average Superhero Gang Power

    首先,对于这题我们要知道要删除一个数使平均值最大一定是删除最小的数,然后我们假设删除操作执行了i次,也就是删除最小的i个数。在已知删除操作次数之后求增加操作的次数就容易了,当然是m - i和k * (n - i)中比较小的数啦。用一个ans变量记录结果,遍历i,更新ans,得到最终的ans。

    B - Average Superhero Gang Power GNU C++11 Accepted 46 ms 400 KB
    #include "bits/stdc++.h"
    using namespace std;
    typedef long long LL;
    const int MAXN = 1e5 + 5;
    int arr[MAXN];
    double ans;
    int main() {
        int n, k, m;
        scanf("%d%d%d", &n, &k, &m);
        LL sum = 0;
        for (int i = 1; i <= n; i++) {
            scanf("%d", &arr[i]);
            sum += arr[i];
        }
        sort(arr + 1, arr + 1 + n);
        for (int i = 0; i < n && i <= m; i++) {
            sum -= arr[i];
            // min和max函数要求两个参数数据类型相同,k * (n - i)可能爆int,所以两边都转成LL; 
            ans = max(ans, (sum + min(1LL * m - i, 1LL * k * (n - i))) * 1.0 / (n - i));
        }
        printf("%.8lf", ans);
        return 0;
    }
  • 相关阅读:
    vue
    vue
    vue
    vue
    vue
    vue
    vue
    java判断A字符串是否包含B字符串
    JAVA复制文件最快的算法
    Struts2 无后缀action请求
  • 原文地址:https://www.cnblogs.com/Angel-Demon/p/10353999.html
Copyright © 2011-2022 走看看