锦绣育才【集训题】建造水族箱

描述

方馆长决定建造一个水族箱。他有一块珊瑚,由 n 根柱子组成,第 i 根柱子的高度为 ai。接着,你将按照以下方式围绕珊瑚建造一个水箱:
1、选择一个整数 h≥1 —— 水箱的高度。
2、在水箱的两侧建造高度为 h 的墙壁。
3、将水箱注满水,使得每根柱子的高度为 h,除非珊瑚的高度超过 h,这种情况下,该柱子不需要添加水。
image.png

例如,当 a=[3,1,2,4,6,2,5] 和高度为 h=4 时,最终需要使用
w=8 单位的水,如图所示。

方馆长最多可以使用 x 单位的水来填满水箱,但方馆长希望建造尽可能大的水箱。他可以选择的高度 h 的最大值是多少?

输入描述

第一行包含一个整数 t (1 ≤ t ≤ 10) —— 测试用例的数量。

每个测试用例的第一行包含两个正整数 n 和 x,(1 ≤ n ≤ 100000,1 ≤ x ≤ 1000000000)—— 珊瑚的柱子数量和你可以使用的最大水量。
每个测试用例的第二行包含 n 个空格分隔的整数 ai(1 ≤ ai ≤ 1000000000) —— 珊瑚柱子的高度。

输出描述

对于每个测试用例,输出一个正整数 h —— 水箱的最大高度

用例输入 1

5
7 9
3 1 2 4 6 2 5
3 10
1 1 1
4 1
1 4 3 4
6 1984
2 6 5 9 1 8
1 1000000000
1
用例输出 1

4
4
2
335
1000000001

#include <bits/stdc++.h>
using namespace std; 
int t,n,x,a[100010];
long long check(int s){
    long long res=0;
    for(int i=1;i<=n;i++){
        if(a[i]<s)res+=(s-a[i]);       
    }
    return res;
}
int main(){
    cin>>t;
    while(t--){
        cin>>n>>x;
        for(int i=1;i<=n;i++) cin>>a[i];
        sort(a+1,a+n+1);
        long long l=1,r=a[1]+x,ans=-1;
        while(l<=r){
            long long mid=(l+r)/2;
            if(check(mid)<=x){
                l=mid+1;
                ans=mid;
            }
            else{
                r=mid-1;
            }
        }
        cout<<ans<<endl;
    }
}

内容概要:本文档是一份关于交换路由配置的学习笔记,系统地介绍了网络设备的远程管理、交换机与路由器的核心配置技术。内容涵盖Telnet、SSH、Console三种远程控制方式的配置方法;详细讲解了VLAN划分原理及Access、Trunk、Hybrid端口的工作机制,以及端口镜像、端口汇聚、端口隔离等交换技术;深入解析了STP、MSTP、RSTP生成树协议的作用与配置步骤;在路由部分,涵盖了IP地址配置、DHCP服务部署(接口池与全局池)、NAT转换(静态与动态)、静态路由、RIP与OSPF动态路由协议的配置,并介绍了策略路由和ACL访问控制列表的应用;最后简要说明了华为防火墙的安全区域划分与基本安全策略配置。; 适合人群:具备一定网络基础知识,从事网络工程、运维或相关技术岗位1-3年的技术人员,以及准备参加HCIA/CCNA等认证考试的学习者。; 使用场景及目标:①掌握企业网络中常见的交换与路由配置技能,提升实际操作能力;②理解VLAN、STP、OSPF、NAT、ACL等核心技术原理并能独立完成中小型网络搭建与调试;③通过命令示例熟悉华为设备CLI配置逻辑,为项目实施和故障排查提供参考。; 阅读建议:此笔记以实用配置为主,建议结合模拟器(如eNSP或Packet Tracer)动手实践每一条命令,对照拓扑理解数据流向,重点关注VLAN间通信、路由选择机制、安全策略控制等关键环节,并注意不同设备型号间的命令差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

༺ཌༀ傲穹_Vortexༀད༻

你的鼓励奖是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值