尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

码蹄杯冲刺!!!

码蹄杯冲刺!!!
📅 发布时间:2026/7/20 18:07:23

之前忙着期末考试与一些其他的闲杂事情所以就耽搁了更深层的钻研,现在暑假又来补啦!由于今天实在是有些晚了,再加上本人脑容量不是很够,所以这篇文章就写了一道题码蹄集OJ-丫鬟的月例银。

MC0481丫鬟的月例银 难度:黄金

年终结算时,贾母发现各房主子丫鬟的月例银总额太高了。为了削减开支,需要进行调整。现在假设荣国府一共有n个丫鬟,她们的月例银排成正整数序列为a1∼an​。现在削减开支的目标,是要让这n个数字之和不超过m。

为了实现这一目标,小码妹可以钦定一个正整数D,使得所有的ai​变成⌊ai/D⌋,现在问,要实现这一目标,D最小可以是多少(当然不能小于1)?

格式

输入格式:

第一行一个整数T(1≤T≤5×100000),表示测试数据组数,对于每组测试数据:
第一行两个整数n,m(1≤n≤5×100000,1≤m≤1000000000000)。
第二行nn个整数a1∼an(1≤ai≤1000000000)。
数据保证 ∑n≤5×1000000。

输出格式:

对于每组测试数据,一行一个整数,表示答案。

样例 1

输入:

3 5 10 10 10 4 10 6 5 10 1 1 1 1 1 5 10 2 2 3 2 2

复制

输出:

4 1 2

复制

样例 2

输入:

1 1 1 999999999

输出:

500000000

本题相关知识点: 算法基础:二分 | 三分

思考

这个题一开始看到的时候我脑子还有点雾水,但是看到了算法基础是二分我就瞬间明白可以怎么来进行思考了。(虽然但是,希望自己在比赛时也能看出这个找最小值是用二分)

要找到可以满足每一个月例银除掉一个最小值后加起来还要小于一个m值的D值,此时我们使用二分就能避免数据过多而导致的超时了。当然,这个二分模板我仍然选择的是自己用的比较熟练的,详细见下方。

int find(int q) { int l = 0, r = 最大值; while(l+1 < r) { int mid = (l+r) >> 1; if(check()) l = mid; else r = mid; } return r; }

然后就是命值了,l我仍然是选择的命值为0,r命值为最大的a[i]1000000009,在这个范围内去找答案,同时写一个加和函数fun,当加和后的结果如果大于给定的m值,那么就将后就将l赋值为mid,反之则将r赋值为mid,最后取的是右边的值,因为找最小的,那么就应该在右边那些不可行的范围中找到那个边界值也就是最小的r,就是我们要求的D值。

代码如下:

#include<bits/stdc++.h> #define N 500005 using namespace std; int n, D; long long a[N], m, sum; long long fun(int x) { long long tmp = 0; for(int i = 1; i <= n; i++) { tmp += a[i]/x; } return tmp; } int main( ) { int T; cin >> T; while(T--) { cin >> n >> m; for(int i = 1; i <= n; i++) { cin >> a[i]; sum += a[i]; } if(sum <= m) { cout << 1 << '\n'; sum = 0; continue; } int l = 0, r = 1000000009; while(l+1 < r) { int mid = (l+r) >> 1; if(fun(mid) > m) l = mid; else r = mid; } D = r; cout << D << '\n'; } return 0; }

相关新闻

  • 2026南宁名表回收价格行情表|保值率高低与出手时机详解 - 易奢福
  • 把本地 MCP 工具临时暴露给 AI 客户端:用 cpolar 排查 Resource 为什么看不到
  • 【万字文档+源码】基于SpringBoot+Vue员工岗前培训学习平台-可用于毕设-课程设计-练手学习-学习资料分享

最新新闻

  • 石油行业无线监测:DXMP 系列实时频谱仪模块的宽频与便携特性
  • Metroidvania-System:零代码打造银河恶魔城游戏的终极框架
  • Topcoat:Tokio 团队的 Rust 全栈框架,用编译期宏替代 WASM 前端
  • 魔兽争霸III终极优化指南:免费开源WarcraftHelper完整配置教程
  • 终极指南:如何使用SGLang实现高效多模态AI处理与视觉语言模型分析
  • 人生绝望今日化的庖丁解牛

日新闻

  • Python开发内部工具:7大核心库实战解析
  • 合肥雷达官方2026年7月最新信息:客户服务网点地址与售后热线权威公示 - 亨得利官方服务中心
  • PCA实战指南:从变量纠缠诊断到主成分业务解读

周新闻

  • SaaS软件行业GEO实践:AI搜索时代的品牌可见性与获客新路径
  • 什么是PCTFE?医药高端包装的“防潮王牌“材料
  • 【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号