网站建设与应用 教案阿里云网站建设好用吗

张小明 2026/1/11 8:57:18
网站建设与应用 教案,阿里云网站建设好用吗,西安网络推广外包,wordpress仿百度贴吧机器人搬砖 2025华为OD机试 - 华为OD上机考试 100分题型 华为OD机试真题目录点击查看: 华为OD机试真题题库目录#xff5c;机考题库 算法考点详解 题目描述 机器人搬砖#xff0c;一共有 N 堆砖存放在 N 个不同的仓库中#xff0c;第 i 堆砖中有 bricks[i] 块砖头#…机器人搬砖2025华为OD机试 - 华为OD上机考试 100分题型华为OD机试真题目录点击查看: 华为OD机试真题题库目录机考题库 算法考点详解题目描述机器人搬砖一共有 N 堆砖存放在 N 个不同的仓库中第 i 堆砖中有 bricks[i] 块砖头要求在 8 小时内搬完。机器人每小时能搬砖的数量取决于有多少能量格机器人一个小时中只能在一个仓库中搬砖机器人的能量格只在这一个小时有效为使得机器人损耗最小化应尽量减小每次补充的能量格数。为了保障在 8 小时内能完成搬砖任务请计算每小时给机器人充能的最小能量格数。无需考虑机器人补充能力格的耗时无需考虑机器人搬砖的耗时机器人每小时补充能量格只在这一个小时中有效输入描述第一行为一行数字空格分隔输出描述机器人每小时最少需要充的能量格若无法完成任务输出 -1用例1输入30 12 25 8 19输出15用例2输入10 12 25 8 19 8 6 4 17 19 20 30输出-1说明砖的堆数为12堆存放在12个仓库中机器人一个小时内只能在一个仓库搬砖不可能完成任务。题解思路二分首先进行分类讨论能完成和不能完成的情况:题目要求每小时只能处理一个仓库并且只有八个小时工作时间分为以下两种情况仓库数量多余8的肯定不能完成直接输出-1即可。如果仓库数量小于等于8则能完成。接下来像这种在什么限制最少..题型比较经典就是用二分来实现这道题就是二分经典题型二分有个关键就是怎么确定枚举上下边界对于这道题下边界一个仓库由于可以用多个小时来完成所以left可以设置为1上边界right,由于一个时间只能打扫一个仓库所以right可以设置为最大仓库砖块数。接下来就是二分的基本套路,每次枚举mid (left right) /2,如果能够满足条件则更新res mid, 否则设置left mid 1, 直到left right结束。至于检验mid是否可以满足条件的逻辑就是从前往后枚举仓库计算每个仓库需要的小时数(count[i] mid - 1) /mid,累加小时数是否小于等于8c#includeiostream #includevector #includestring #include utility #include sstream #includealgorithm #includecmath #includemap using namespace std; // 通用 切割函数 函数 将字符串str根据delimiter进行切割 vectorint split(const string str, const string delimiter) { vectorint result; size_t start 0; size_t end str.find(delimiter); while (end ! string::npos) { result.push_back(stoi(str.substr(start, end - start))); start end delimiter.length(); end str.find(delimiter, start); } // 添加最后一个部分 result.push_back(stoi(str.substr(start))); return result; } bool check(vectorint count, int mid) { int hours 0; for (int i 0; i count.size(); i) { // 每个仓需要时间 hours (count[i] mid - 1) / mid; if (hours 8){ return false; } } return hours 8; } int main() { string input; getline(cin, input); vectorint counts split(input, ); int n counts.size(); // 每小时只能处理一个仓库超过8小时肯定不能完成 if (n 8) { cout -1; return 0; } int left 1; // 右边界设置为最大数量 int right 0; for (int i 0; i n; i) { right max(right, counts[i]); } // 二分 while (left right) { int mid (left right) 1; if (check(counts, mid)) { right mid; } else { left mid 1; } } cout left; return 0; }JAVAimport java.io.*; import java.util.*; public class Main { // 判断在每小时处理 mid 件货物的情况下是否能在 8 小时内完成 static boolean check(int[] counts, int mid) { int hours 0; for (int c : counts) { // 向上取整(c mid - 1) / mid hours (c mid - 1) / mid; if (hours 8) { return false; } } return true; } public static void main(String[] args) throws Exception { BufferedReader br new BufferedReader(new InputStreamReader(System.in)); String line br.readLine(); String[] parts line.split( ); int n parts.length; int[] counts new int[n]; for (int i 0; i n; i) { counts[i] Integer.parseInt(parts[i]); } // 每小时只能处理一个仓库超过 8 个仓库必定失败 if (n 8) { System.out.print(-1); return; } int left 1; int right 0; // 右边界为最大货物量 for (int c : counts) { right Math.max(right, c); } // 二分查找最小可行解 while (left right) { int mid (left right) 1; if (check(counts, mid)) { right mid; } else { left mid 1; } } System.out.print(left); } }Pythonimportsys# 判断在每小时处理 mid 件货物的情况下# 是否能在 8 小时内完成defcheck(counts,mid):hours0forcincounts:# 向上取整hours(cmid-1)//midifhours8:returnFalsereturnTrue# 读取一行输入countslist(map(int,sys.stdin.readline().split()))nlen(counts)# 每小时只能处理一个仓库超过 8 个仓库必定失败ifn8:print(-1)sys.exit(0)left1rightmax(counts)# 二分查找最小可行解whileleftright:mid(leftright)//2ifcheck(counts,mid):rightmidelse:leftmid1print(left)JavaScriptconstreadlinerequire(readline);// readline 接收输入constrlreadline.createInterface({input:process.stdin,output:process.stdout});constlines[];rl.on(line,line{lines.push(line.trim());});rl.on(close,(){constcountslines[0].split(/\s/).map(Number);constncounts.length;// 超过 8 个仓库无法完成if(n8){console.log(-1);return;}letleft1;letrightMath.max(...counts);// 判断函数functioncheck(mid){lethours0;for(constcofcounts){// 向上取整hoursMath.floor((cmid-1)/mid);if(hours8){returnfalse;}}returntrue;}// 二分查找while(leftright){constmid(leftright)1;if(check(mid)){rightmid;}else{leftmid1;}}console.log(left);});Gopackagemainimport(bufiofmtos)// 判断在每小时处理 mid 件货物的情况下// 是否能在 8 小时内完成funccheck(counts[]int,midint)bool{hours:0for_,c:rangecounts{// 向上取整hours(cmid-1)/midifhours8{returnfalse}}returntrue}funcmain(){in:bufio.NewReader(os.Stdin)varcounts[]int// 读取一行所有整数for{varxintif_,err:fmt.Fscan(in,x);err!nil{break}countsappend(counts,x)}n:len(counts)// 每小时只能处理一个仓库超过 8 个仓库直接失败ifn8{fmt.Print(-1)return}left:1right:0// 右边界为最大货物量for_,c:rangecounts{ifcright{rightc}}// 二分查找最小可行解forleftright{mid:(leftright)/2ifcheck(counts,mid){rightmid}else{leftmid1}}fmt.Print(left)}
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

宁波教育平台网站建设网站开发团队如何接活

第一章:揭秘Open-AutoGLM文档引擎:核心架构与设计理念Open-AutoGLM 是一个面向自动化文档生成的高性能引擎,专为处理复杂结构化数据与自然语言融合场景而设计。其核心理念是“语义驱动、模块解耦、可扩展优先”,通过将文档生成过程…

张小明 2026/1/2 4:57:33 网站建设

黄埔网站建设哪家好重庆搭建工厂

第一章:表现在边缘部署的关键差异概述在现代分布式系统架构中,边缘计算正逐步成为提升响应速度、降低带宽消耗和增强数据隐私的核心手段。与传统集中式云部署相比,边缘部署在资源约束、网络环境和运维模式上表现出显著差异。部署环境的异构性…

张小明 2026/1/1 21:07:34 网站建设

网站设计制作是什么erp办公软件

伴随着互联网的发展,它已经成为我们生活中不可或缺的存在,无论是个人还是企业,都离不开互联网。正因为互联网得到了重视,网络安全问题也随之加剧,给我们的信息安全造成严重威胁,而想要有效规避这些风险&…

张小明 2026/1/1 4:40:57 网站建设

做网站邢台wordpress 更换主题

工程师的“第一把钥匙”——STM32CubeMX安装实战全记录 你有没有过这样的经历?刚拿到一块崭新的STM32开发板,满心欢喜地想开始写代码,结果第一步就卡住了: STM32CubeMX打不开 。 不是弹出“No JVM found”,就是界面…

张小明 2026/1/1 4:40:55 网站建设

网站怎么放到服务器上有哪些做微博长图网站

第一章:Angular AOT编译失败?这份官方文档解读帮你10分钟定位问题在开发 Angular 应用时,AOT(Ahead-of-Time)编译是提升性能和检测模板错误的关键环节。当构建过程报错但提示信息模糊时,开发者往往陷入排查…

张小明 2026/1/2 4:57:56 网站建设

太仓广告设计公司网站网站做app的软件有哪些

思源宋体WOFF2压缩终极指南:从25MB到8MB的实战方案 【免费下载链接】source-han-serif Source Han Serif | 思源宋体 | 思源宋體 | 思源宋體 香港 | 源ノ明朝 | 본명조 项目地址: https://gitcode.com/gh_mirrors/sou/source-han-serif 还在为思源宋体庞大的…

张小明 2026/1/5 9:06:27 网站建设