当前位置: 首页 > backend >正文

华为OD机试-最短木板长度-二分法(A卷,100分)

在这里插入图片描述
此题是一个最大化最小值的典型例题,
因为搜索范围是有界的,上界=最大木板长度+补充的全部木料长度,下界=最小木板长度;
即left=0,right=10^6;
我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功(补充的木料数<=m),说明还有继续上升的空间,那么就扩大x的范围(left=mid),否则就缩小范围(right=mid-1),直到搜索结束(left=right),此时left就是木板经过补充后的最小值。

public class Test15 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while(scanner.hasNext()) {// 原木板长度int n = scanner.nextInt();// 要补充的木板长度int m = scanner.nextInt();int[] arr = new int[n];for(int i =0;i<n;i++){arr[i] = scanner.nextInt();}System.out.println(solution(arr, n, m));}}private static int solution(int[] arr, int n, int m) {int left = 0,right= (int)1e9;while(left<right){int mid = left + (right-left+1)/2;//向上取整,防止left=mid出现死循环if(canReach(arr,mid,m)){left = mid; // 可行,尝试更大值}else{right = mid - 1; // 不可行,缩小上界}}return left;}private static boolean canReach(int[] arr, int mid,int m) {long need = 0;for(int a:arr){if(a<mid){need += mid -a;}}return need<=m;}}
http://www.xdnf.cn/news/13073.html

相关文章:

  • .Net 优秀框架 ABP全面详解
  • 推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
  • 第三章:局域网
  • FDA方向图的matlab仿真实现
  • 河北对口计算机高考MySQL笔记(完结版)(2026高考)持续更新~~~~
  • 【Elasticsearch基础】Elasticsearch批量操作(Bulk API)深度解析与实践指南
  • RocketMQ 客户端负载均衡机制详解及最佳实践
  • FFmpeg介绍
  • AI-Python机器学习与深度学习实践技术应用
  • 苹果端Cursor免费额度与模型受限终极解决方案
  • 【Elasticsearch】一个图书馆的案例解释 Elasticsearch
  • Pandas 可视化集成:数据科学家的高效绘图指南
  • 协议转换利器,profinet转ethercat网关的两大派系,各有千秋
  • C#中清空DataGridView的方法
  • RKNN开发环境搭建2-RKNN Model Zoo 环境搭建
  • DAY 26 函数专题1:函数定义与参数
  • 【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解
  • ASR(语音识别)语音/字幕标注 通过via(via_subtitle_annotator)
  • pytorch卷积层权重之 二维互相关运算(corr2d) (亲测,已解决)
  • 华为云CAE部署spring cloud服务
  • MCU ADC硬件设计注意事项
  • Elasticsearch的索引
  • EC2安装WebRTC sdk-c环境、构建、编译
  • 在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
  • 二维数组 行列混淆区分 js
  • 中山大学GaussianFusion:首个将高斯表示引入端到端自动驾驶多传感器融合的新框架
  • NLP学习路线图(三十六): 机器翻译
  • DriveGPT4: Interpretable End-to-end Autonomous Driving via Large Language Model
  • 对象回调初步研究
  • Go 语言底层(四) : 深入 Context 上下文