E. Building an Aquarium

题目描述
在这里插入图片描述在这里插入图片描述
本题其实思想就是找对一个点,使得这个高度的时候水不超过给的值,这个点再多一下下,就会超出给的值,所以我们可以采用二分,但要注意的是,因为要找的点一定不能过大,所以我们使用l+r>>1

#include<iostream>
#include<algorithm>
#include<map>
typedef long long L;
using namespace std;
const int N = 200050; 
L arr[N];
L n,m,mmin,T;
int main()
{
    cin >> T;
    while (T--) {
       
        L sum = 0, ans = 0;
        cin >> n >> m;
        for (int i = 0; i < n; i++)
            cin >> arr[i];
        L l = 0, r = 1e10;//采用二分
        while (l < r)
        {
            L mid = l + r >> 1;
            sum = 0;
            for (int i = 0; i < n; i++) {
                if (mid >= arr[i]) sum += (mid - arr[i]);
                //高度一定是要高于砖块才可以
            }
            if (sum<=m) l = mid + 1, ans = mid;//记录答案
            else r = mid;

        }
        cout << ans<<endl;
    }
        return 0;
}

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-10 17:02:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-10 17:02:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-10 17:02:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-10 17:02:06       20 阅读

热门阅读

  1. 200方啤酒酿造废水处理设备厂家定制

    2024-04-10 17:02:06       12 阅读
  2. .NET常见的20个面试题

    2024-04-10 17:02:06       14 阅读
  3. Linux 数据盘分区自动化脚本 pro/plus 版本

    2024-04-10 17:02:06       14 阅读
  4. postcss

    2024-04-10 17:02:06       16 阅读
  5. ssh远程压测断网,导致程序中断,解决方案

    2024-04-10 17:02:06       12 阅读
  6. 5.7Python之元组

    2024-04-10 17:02:06       11 阅读
  7. 释放无用的内存

    2024-04-10 17:02:06       13 阅读
  8. python实现烟花表演

    2024-04-10 17:02:06       13 阅读
  9. 队列的链表形式

    2024-04-10 17:02:06       12 阅读
  10. Rust---方法(Method)

    2024-04-10 17:02:06       13 阅读
  11. 苹果上架常见问题-appstore开发者名称修改

    2024-04-10 17:02:06       12 阅读