华为非AI方向笔试真题 7月24号【最优河堤加固方案】
最优河堤加固方案(C/Py/Java/Js/Go)题解华为笔试真题 7月24号 非AI方向第一题 100分题型题目内容一个数组代表河堤的高度堤坝是等长、等宽的现在需要在不超过最大预算的前提下尽可能的加固河堤使最低高度所有加固的土只能通过一定的成本来运输和填充。一辆车一次只能运输一定量的土运输成本每次固定一车土可以填入多个堤坝填埋每个单位成本固定。求出在不超过给定预算成本的情况下填埋后的所有河堤岸最低高度的最大值是多少。输入描述最大预算成本MaxCosts(1≤MaxCosts≤1000 0000 0000)\left(1 \le MaxCosts \le 1000\,0000\,0000\right)(1≤MaxCosts≤100000000000)每车最大载量MaxCapacity(1≤MaxCapacity≤100)\left(1 \le MaxCapacity \le 100\right)(1≤MaxCapacity≤100)每车单次运输成本TransportationCostPerShipment(1≤TransportationCostPerShipment≤100)\left(1 \le TransportationCostPerShipment \le 100\right)(1≤TransportationCostPerShipment≤100)每个单位高度的土填埋成本UnitCost(1≤UnitCost≤100)\left(1 \le UnitCost \le 100\right)(1≤UnitCost≤100)河堤个数num(1≤num≤100000)\left(1 \le num \le 100000\right)(1≤num≤100000)河堤高度数据heights[]空格分割数据个数为num。(0≤heights[i]≤1000000)\left(0 \le heights[i] \le 1000000\right)(0≤heights[i]≤1000000)输出描述预算成本内可以加固的最低高度最大值。注意可提高预算情况下最大值会超过加固前河堤最大高度。样例1输入100 10 5 2 5 1 2 5 3 4输出11解释最大预算成本100每车最大载量10单次运输成本为5每个单位高度的土填埋成本是2河堤线长度是5。最优方案是成本内所有河堤最低高度加固到11总共土填埋成本为(11−111−211−511−311−4)∗280(11-1 11-2 11-5 11-3 11-4) * 280(11−111−211−511−311−4)∗280运输成本是需要4辆车拉取40个单位的土运输成本为20共计花费100不超过最大预算成本。如果所有河堤最低高度加固到12总共土填埋成本为(12−112−212−512−312−4)∗290(12-1 12-2 12-5 12-3 12-4) * 290(12−112−212−512−312−4)∗290。运输成本是需要5辆车拉取45个单位的土运输成本为25共计花费115超过最大预算成本。样例2输入50 10 10 1 10 1 2 5 3 4 5 4 1 1 1输出4解释最大预算成本50每车最大载量10单次运输成本为10每个单位高度的土填埋成本是1河堤线长度是10。最优方案是成本内所有河堤最低高度加固到4总共土填埋成本为(4−14−24−34−14−14−1)∗115(4-1 4-2 4-3 4-1 4-1 4-1) * 115(4−14−24−34−14−14−1)∗115运输成本是需要2辆车拉取15个单位的土运输成本为20共计花费35不超过最大预算成本。如果所有河堤最低高度加固到5总共土填埋成本为(5−15−25−35−45−45−15−15−1)∗123(5-1 5-2 5-3 5-4 5-4 5-1 5-1 5-1) * 123(5−15−25−35−45−45−15−15−1)∗123运输成本是需要3辆车拉取23个单位的土运输成本为30共计花费53超过最大预算成本。题解和思路思路实现思路二分标准二分题型开始确定左右边界left 0, right 1e9足够大枚举中间值mdi (l r 1) /2作为河堤岸最低高度判断是否能在不超过最大成本前提下完成能完成更新l mid不能完成更新r mid - 1check逻辑统计需要填充高度数量并判断 填充成本 运输成本 最大预算成本算法总体时间复杂度为O(nlogn)C#includebits/stdc.husingnamespacestd;intmaxCosts,maxCapacity,T,U,n;vectorintheights;boolcheck(intmid){// 填充土的数量longres0;for(autoheight:heights){if(heightmid){resmid-height;}}// 成本 单位填充 运输成本returnres*U(resmaxCapacity-1)/maxCapacity*TmaxCosts;}intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);cinmaxCosts;cinmaxCapacity;cinT;cinU;cinn;heights.resize(n);for(inti0;in;i){cinheights[i];}intl0,r1e9;// 二分while(lr){intmid(lr1)1;if(check(mid)){lmid;}else{rmid-1;}}coutl;return0;}Javaimportjava.util.*;publicclassMain{staticlongmaxCosts,maxCapacity,T,U;staticintn;staticint[]heights;staticbooleancheck(longmid){// 填充土的数量longres0;for(intheight:heights){if(heightmid){resmid-height;}}// 成本 单位填充成本 运输成本returnres*U((resmaxCapacity-1)/maxCapacity)*TmaxCosts;}publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);maxCostssc.nextLong();maxCapacitysc.nextLong();Tsc.nextLong();Usc.nextLong();nsc.nextInt();heightsnewint[n];for(inti0;in;i){heights[i]sc.nextInt();}longl0,r1000000000L;// 二分while(lr){longmid(lr1)1;if(check(mid)){lmid;}else{rmid-1;}}System.out.print(l);}}pythonmaxCostsint(input())maxCapacityint(input())Tint(input())Uint(input())nint(input())heightslist(map(int,input().split()))defcheck(mid):# 填充土的数量res0forheightinheights:ifheightmid:resmid-height# 成本 单位填充成本 运输成本returnres*U((resmaxCapacity-1)//maxCapacity)*TmaxCosts l,r0,10**9# 二分whilelr:mid(lr1)//2ifcheck(mid):lmidelse:rmid-1print(l)Javascriptconstreadlinerequire(readline);constrlreadline.createInterface({input:process.stdin,output:process.stdout});constinput[];rl.on(line,(line){input.push(line);});rl.on(close,(){letidx0;constmaxCostsBigInt(input[idx]);constmaxCapacityBigInt(input[idx]);constTBigInt(input[idx]);constUBigInt(input[idx]);constnNumber(input[idx]);constheightsinput[idx].split( ).map(Number);functioncheck(mid){// 填充土的数量letres0n;for(constheightofheights){if(BigInt(height)mid){resmid-BigInt(height);}}// 成本 单位填充成本 运输成本returnres*U((resmaxCapacity-1n)/maxCapacity)*TmaxCosts;}letl0n;letr1000000000n;// 二分while(lr){constmid(lr1n)1n;if(check(mid)){lmid;}else{rmid-1n;}}console.log(l.toString());});Gopackagemainimport(bufiofmtos)var(maxCostsint64maxCapacityint64Tint64Uint64nintheights[]int64)funccheck(midint64)bool{// 填充土的数量varresint640for_,height:rangeheights{ifheightmid{resmid-height}}// 成本 单位填充成本 运输成本returnres*U(resmaxCapacity-1)/maxCapacity*TmaxCosts}funcmain(){in:bufio.NewReader(os.Stdin)fmt.Fscan(in,maxCosts)fmt.Fscan(in,maxCapacity)fmt.Fscan(in,T)fmt.Fscan(in,U)fmt.Fscan(in,n)heightsmake([]int64,n)fori:0;in;i{fmt.Fscan(in,heights[i])}varlint640varrint641000000000// 二分forlr{mid:(lr1)1ifcheck(mid){lmid}else{rmid-1}}fmt.Print(l)}

相关新闻

零基础学编程真的不难?3类被92%新手忽略的认知陷阱,AI时代必须避开的4个致命误区

零基础学编程真的不难?3类被92%新手忽略的认知陷阱,AI时代必须避开的4个致命误区

更多请点击: https://codechina.net 第一章:零基础学编程真的不难?AI时代的学习真相 过去十年,编程常被塑造成一道高耸的智力门槛——需要数学天赋、逻辑训练和数年苦修。而今天,AI正悄然重写这条学习路径&#xff1a…

2026/7/29 2:09:07 阅读更多 →
2026无人机场品牌深度解析:华测AH50自动巡检系统应用指南

2026无人机场品牌深度解析:华测AH50自动巡检系统应用指南

三伏天里,输电线路巡检员顶着烈日翻山越岭,一趟巡检下来衣服全湿透,还未必能发现杆塔上的隐蔽缺陷。据《中国地理信息产业发展报告(2025)》显示,我国地理信息产业总产值近5年复合增长率为5.6%,近…

2026/7/29 2:08:07 阅读更多 →
Java高性能缓存库Caffeine核心特性与实战指南

Java高性能缓存库Caffeine核心特性与实战指南

1. 认识Caffeine:不只是提神饮料第一次听说"Caffeine"这个词时,你可能和我一样,首先想到的是早晨那杯冒着热气的咖啡。但在这个技术飞速发展的时代,Caffeine已经成为了一个多义词。作为一名长期与各种技术打交道的开发者…

2026/7/29 2:08:07 阅读更多 →

最新新闻

ESP32-C6驱动TFT屏幕:从Arduino环境搭建到图形界面开发实战

ESP32-C6驱动TFT屏幕:从Arduino环境搭建到图形界面开发实战

1. 开箱与初识:FireBeetle 2 Board ESP32 C6的硬件魅力拿到一块新的开发板,就像拿到一个新玩具,总想第一时间点亮它,看看里面藏着什么惊喜。这次的主角是DFRobot的FireBeetle 2 Board ESP32 C6。对于熟悉ESP32系列的朋友来说&…

2026/7/29 2:16:09 阅读更多 →
一个信号分析处理对比工具

一个信号分析处理对比工具

我是做振动筛在线监测系统的 最近的工作就是把加速度传感器的原始加速度信号转换成速度、位移。 在振动筛在线监测项目中,需要通过加速度传感器采集设备振动信号,并进一步计算速度和位移指标,用于设备状态判断和故障分析。 由于现场采集的…

2026/7/29 2:16:09 阅读更多 →
C/C++中char与unsigned char的底层差异与实战避坑指南

C/C++中char与unsigned char的底层差异与实战避坑指南

1. 项目概述:从一次内存越界引发的深夜调试说起那天晚上,我盯着调试器里一个诡异的数值,陷入了沉思。一个本该是正数的数组索引,却显示为一个巨大的负数,导致程序在访问数组时直接崩溃。问题的根源,最终锁定…

2026/7/29 2:16:09 阅读更多 →
从 LeetCode 78 子集出发,真正理解回溯:当前操作、子问题与下一个子问题

从 LeetCode 78 子集出发,真正理解回溯:当前操作、子问题与下一个子问题

大家好,我是程序员无隅第一次写回溯时,我们很容易把注意力放在 append()、递归调用和 pop() 上,最后记住了一段模板,却不知道为什么递归参数是 i,也不知道下一层为什么传 i 1 或 j 1。 其实,写回溯最重要…

2026/7/29 2:16:09 阅读更多 →
开源项目wvp-gb28181-pro怎么设置生产环境的IP

开源项目wvp-gb28181-pro怎么设置生产环境的IP

对照开源 WVP-PRO 官方配置语义,生产环境最合理的原则是:按“谁访问谁”拆 IP,不要一个公网 IP 打天下。你们现在生产更接近“能用,但不完全按官方最优拆分”。 如果是公网摄像头 公网网页观看 WVP/ZLM 同机或同内网&#xff0c…

2026/7/29 2:16:09 阅读更多 →
【JAVA毕设源码分享】基于Java的旅游攻略分享平台的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于Java的旅游攻略分享平台的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/29 2:15:09 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中,我们学习了如何构建一个基础的 AI 问答系统,通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景:…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行:AI Agent的范式转变过去两年,大语言模型最显著的应用形态是聊天机器人——用户提问,AI回答。但真正的生产力革命发生在2023年下半年:当AI学会主动调用工具完成任务时,生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻