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

描述

方馆长决定建造一个水族箱。他有一块珊瑚,由 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;
    }
}

独立储能的现货电能量与调频辅助服务市场出清协调机制(Matlab代码实现)内容概要:本文围绕“独立储能的现货电能量与调频辅助服务市场出清协调机制”展开,提出了一种基于Matlab代码实现的优化模型,旨在协调独立储能系统在电力现货市场与调频辅助服务市场中的联合出清问。文中结合鲁棒优化、大M法和C&CG算法处理不确定性因素,构建了多市场耦合的双层或两阶段优化框架,实现了储能资源在能量市场和辅助服务市场间的最优分配。研究涵盖了市场出清机制设计、储能运行策略建模、不确定性建模及求解算法实现,并通过Matlab仿真验证了所提方法的有效性和经济性。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事电力市场、储能调度相关工作的工程技术人员。; 使用场景及目标:①用于研究独立储能在多电力市场环境下的协同优化运行机制;②支撑电力市场机制设计、储能参与市场的竞价策略分析及政策仿真;③为学术论文复现、课研究和技术开发提供可运行的代码参考。; 阅读建议:建议读者结合文档中提供的Matlab代码与算法原理同步学习,重点关注模型构建逻辑、不确定性处理方式及C&CG算法的具体实现步骤,宜在掌握基础优化理论的前提下进行深入研读与仿真调试。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

༺ཌༀ傲穹_Vortexༀད༻

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

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

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

打赏作者

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

抵扣说明:

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

余额充值