华为OD机试真题——通过软盘拷贝文件(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

article/2025/6/28 22:46:30

在这里插入图片描述

2025 A卷 200分 题型

本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析;
并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式!

本文收录于专栏:《2025华为OD真题目录+全流程解析/备考攻略/经验分享》

华为OD机试真题《通过软盘拷贝文件》:


目录

    • 题目名称:通过软盘拷贝文件
      • 题目描述
    • Java
      • 问题分析
      • 解题思路
      • 代码实现
      • 代码详细解析
      • 示例测试
        • 示例1输入:
        • 示例2输入:
        • 示例3输入:
      • 综合分析
    • python
      • 问题分析
      • 解题思路
      • 代码实现
      • 代码详细解析
      • 示例测试
        • 示例1输入:
        • 示例2输入:
        • 示例3输入:
      • 综合分析
    • JavaScript
      • 问题分析
      • 解题思路
      • 代码实现
      • 代码详细解析
      • 示例测试
        • 示例1输入:
        • 示例2输入:
        • 示例3输入:
      • 综合分析
    • C++
      • 问题分析
      • 解题思路
      • 代码实现
      • 代码详细解析
      • 示例测试
        • 示例1输入:
        • 示例2输入:
        • 示例3输入:
      • 综合分析
    • C语言
      • 问题分析
      • 解题思路
      • 代码实现
      • 代码详细解析
        • 1. 输入处理
        • 2. 块数计算
        • 3. 动态规划数组初始化
        • 4. 核心状态转移
        • 5. 结果输出
      • 示例测试
        • 示例1输入:
        • 示例2输入:
        • 示例3输入:
      • 综合分析
        • 1. 时间复杂度
        • 2. 空间复杂度
        • 3. 优势
        • 4. 适用场景
    • GO
      • 问题分析
      • 解题思路
      • 代码实现
      • 代码详细解析
        • 1. 输入处理
        • 2. 读取文件大小
        • 3. 块数计算
        • 4. 动态规划数组初始化
        • 5. 核心状态转移
        • 6. 结果输出
      • 示例测试
        • 示例1输入:
        • 示例2输入:
        • 示例3输入:
      • 综合分析


题目名称:通过软盘拷贝文件


  • 知识点:动态规划(01背包)
  • 时间限制:1秒
  • 空间限制:256MB
  • 限定语言:不限

题目描述

科学家需要从古董电脑中拷贝文件到软盘,软盘容量为 1474560 字节。文件存储按块分配,每个块 512 字节,一个块只能被一个文件占用。文件必须完整拷贝且不压缩。目标是使软盘中文件总大小最大。

输入描述

  • 第1行为整数 N,表示文件数量(1 ≤ N < 1000)。
  • 第2行到第N+1行,每行为一个整数,表示文件大小 Si(单位:字节,0 < Si ≤ 1000000)。

输出描述

  • 输出科学家能拷贝的最大文件总大小。

示例
输入:

3  
737270  
737272  
737288  

输出:

1474542  

说明

  • 文件块计算方式:每个文件大小向上取整到512的倍数。例如737270字节占用 ceil(737270/512) = 1440 块。
  • 软盘总块数为 1474560/512 = 2880 块。选择前两个文件占用 1440 + 1440 = 2880 块,总大小为 737270 + 737272 = 1474542 字节。

补充说明

  • 动态规划(01背包问题)或回溯法是典型解法。文件块为背包容量,文件大小为价值,需最大化总价值。

Java

问题分析

我们需要在给定多个文件的情况下,选择一些文件拷贝到软盘上,使得总块数不超过软盘容量,同时总文件大小最大。每个文件的大小按512字节向上取整计算块数。这是一个典型的0-1背包问题,其中背包容量是软盘的总块数,每个文件的体积是其块数,价值是文件实际大小。


解题思路

  1. 块数计算:对每个文件大小,计算其占用的块数(向上取整到512的倍数)。
  2. 动态规划:使用动态规划求解0-1背包问题。定义dp[i]为容量i时的最大总价值。
  3. 结果构造:遍历所有可能的容量,找到最大总价值。

代码实现

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int N = scanner.nextInt(); // 读取文件数量int[] sizes = new int[N]; // 存储每个文件的大小for (int i = 0; i < N; i++) {sizes[i] = scanner.nextInt();}int totalBlocks = 1474560 / 512; // 软盘总块数2880int[] dp = new int[totalBlocks + 1]; // dp数组,dp[i]表示容量i时的最大总价值for (int size : sizes) { // 遍历每个文件int blocks = (size + 511) / 512; // 计算块数:向上取整int value = size; // 价值是文件实际大小// 逆序更新dp数组,确保每个文件只选一次for (int j = totalBlocks; j >= blocks; j--) {if (dp[j - blocks] + value > dp[j]) {dp[j] = dp[j - blocks] + value;}}}// 找出dp数组中的最大值int max = 0;for (int j = 0; j <= totalBlocks; j++) {if (dp[j] > max) {max = dp[j];}}System.out.println(max);}
}

代码详细解析

  1. 输入处理

    • Scanner读取输入,N为文件数量,sizes数组存储每个文件的大小。
  2. 块数计算

    • 每个文件的块数通过(size + 511) / 512计算,实现向上取整。
  3. 动态规划数组初始化

    • dp数组长度为totalBlocks + 1,初始值为0。
  4. 动态规划过程

    • 对每个文件,逆序遍历容量(从totalBlocks到当前文件块数),更新dp数组。
    • 逆序更新确保每个文件仅被考虑一次,符合0-1背包要求。
  5. 结果提取

    • 遍历dp数组,找到最大值即为答案。

示例测试

示例1输入:
3  
737270  
737272  
737288  

输出

1474542  

解析

  • 块数分别为1440、1440、1441。选中前两个文件,总块数2880,总价值1474542。
示例2输入:
2  
513 1023  

输出

1023  

解析

  • 块数分别为2(513→2块)、2(1023→2块)。总块数4,容量2880远大于4。选1023。
示例3输入:
1  
1474560  

输出

0  

解析

  • 块数2880,超过软盘容量2880?文件大小1474560正好占用2880块,总和等于容量,输出1474560?

注意:示例3可能存在错误,实际块数为1474560 /512 = 2880块。若文件大小1474560,则块数2880,总块数刚好等于容量,应输出1474560。可能需要验证题目条件。


综合分析

  1. 时间复杂度:O(N × M),其中N为文件数量,M为总块数(2880)。满足题目时间限制。
  2. 空间复杂度:O(M),动态规划数组仅需线性空间。
  3. 优势
    • 动态规划高效解决背包问题。
    • 块数计算准确,确保正确性。
  4. 适用场景:适用于文件数量大但总块数适中的场景。

python

问题分析

我们需要选择若干文件拷贝到软盘上,使得总块数不超过软盘容量,同时总文件大小最大。每个文件大小需向上取整到512字节的块数。这是典型的0-1背包问题,块数为容量,文件实际大小为价值。


解题思路

  1. 块数计算:每个文件大小向上取整到512的倍数。
  2. 动态规划:使用一维数组 dp 表示容量为 i 时的最大总价值。
  3. 逆序更新:确保每个文件只被选择一次。

代码实现

def main():import sysinput = sys.stdin.read().split()idx = 0N = int(input[idx])  # 读取文件数量idx += 1sizes = []for _ in range(N):sizes.append(int(input[idx]))  # 读取所有文件大小idx += 1total_blocks = 1474560 // 512  # 总块数2880dp = [

http://www.hkcw.cn/article/XhAnxECSKO.shtml

相关文章

msvcp140.dll丢失?6种有效解决方法,解决程序启动错误!

“msvcp140.dll 丢失&#xff0c;无法启动程序&#xff01;” —— 当你运行某些软件或游戏时&#xff0c;是否遇到这样的错误提示&#xff1f;msvcp140.dll 是 Microsoft Visual C 2015-2022 运行时库的核心文件&#xff0c;许多应用程序依赖它才能正常运行。一旦该文件缺失、…

本周披露并购重组进展的A股名单一览 并购活跃注入新动能

A股市场并购重组持续活跃,产业整合与战略转型交织,为资本市场注入新动能。二级市场上,拟购买包装饮用水公司江西润田实业100%股权的ST联合周五收盘实现3连板,拟跨界收购超高速视觉仪器厂商中科视界的富煌钢构斩获2连板。本周披露并购重组进展的A股上市公司共有16家,包括渤…

车辆坠桥致5死的断头路已加高护栏 新防护装置到位

近日,广东省东莞市环莞快速路虎门段发生了一起小汽车坠桥事故,导致5人死亡,引起了广泛关注。据通报,5月19日18时23分,一辆小汽车搭载4人沿环莞快速路行驶至虎门一水库特大桥路段时,因超速冲破防撞沙桶和护栏后坠桥,车上5名司乘人员受伤,送医抢救无效死亡。死者家属在接…

李连杰邀请头条网友提问 探讨武术与公益

62岁的李连杰在今年4月19日回归微博后,又于5月31日宣布入驻今日头条和抖音平台,让影迷们感叹“失踪人口重回大众视野”。当天,李连杰在抖音上发布了三条视频,讲述了自己开设抖音账号的原因,并介绍了端午节的习俗。他在视频中表示,希望与大家探讨武术、公益、电影和慈善等…

卫星地图 App 的实测体验深度解析

卫星地图 App 的实测体验深度解析 奥维互动地图 国内领先的地理数据平台&#xff1a; 整合天地图、百度地图、高德地图等主流数据源&#xff0c;国内高清卫星影像覆盖率高达98%&#xff0c;农村地区影像分辨率可达0.5米。支持BIM建模与实景三维模型加载&#xff0c;工程测绘…

【速写】PPOTrainer样例与错误思考(少量DAPO)

文章目录 序言1 TRL的PPO官方样例分析2 确实可行的PPOTrainer版本3 附录&#xff1a;DeepSeek关于PPOTrainer示例代码的对话记录Round 1&#xff08;给定模型数据集&#xff0c;让它开始写PPO示例&#xff09;Round 2 &#xff08;指出PPOTrainer的参数问题&#xff09;关键问题…

特朗普称将提高进口钢材关税激怒美盟友

“经济自残” 特朗普称将提高进口钢材关税激怒美盟友当地时间5月30日,美国总统特朗普称,将把美国进口钢铁和铝的关税从目前的25%上调至50%,引发加拿大和澳大利亚多方反对。加拿大劳工大会主席贝娅布鲁斯克表示,特朗普决定提高美国进口钢材关税是“对加拿大的又一次直接攻击…

你的龙舟我的龙舟好像不一样 端午风俗各具特色

划龙舟是端午节最热闹、最让人激动的内容之一。孩子们除了插艾草、挂菖蒲、吃粽子外,最喜欢的就是观看划龙舟。初夏的天气,天蓝水碧,轻风拂面。端午节那天,几艘龙舟一字排列停泊在河里。两岸彩旗飘扬,人山人海。哨声一响,顿时锣鼓喧天,喊声阵阵。几条龙舟像离弦的箭在水…

神二十乘组太空送来端午祝福 天地共享粽香

神舟二十号航天员乘组三名航天员陈冬、陈中瑞、王杰进驻中国空间站已经一个多月。5月31日,他们在太空迎来第一个中国传统节日端午节,并从太空发来祝福。他们祝愿祖国蒸蒸日上,亿万同胞幸福美满、端午安康。此前,不少航天员也在太空中度过端午节。2012年6月23日,神舟九号航…

记者租7辆车有6辆是“非营运”性质 隐患重重引关注

在租车平台租赁车辆时,很多人可能不会特别关注车辆是“营运”还是“非营运”的使用性质。然而,根据《中华人民共和国道路运输条例》规定,非营运车辆不得从事租赁经营活动。如果租到非营运车辆,一旦发生交通事故,保险公司可能会因为车辆用途不符而拒保。胡女士今年刚拿到驾…

《脱缰者也》入围上影节金爵奖 津式黑色幽默引期待

5月31日,第二十七届上海国际电影节金爵奖入围名单揭晓。12部来自全球各地的优秀影片脱颖而出,其中多部中国影片凭借独特的题材、深刻的内涵和出色的创作团队备受关注。曹保平的新作《脱僵者也》再度入围,郭麒麟和齐溪联袂为观众呈现独特的“津式黑色幽默”。青年导演仇晟携新…

新加坡公开赛女单4强国羽占3席 展现强大实力

在北京时间5月30日结束的2025年新加坡羽毛球公开赛1/4决赛中,中国队表现优异。女单方面,陈雨菲、王祉怡和韩悦均晋级四强;男单陆光祖也成功晋级;女双刘圣书/谭宁和贾一凡/张殊贤顺利进入下一轮;混双郭新娃/陈芳卉同样闯入四强。陈雨菲在女单赛场上的表现尤为抢眼,她以两局…

NodeMediaEdge接入NodeMediaServer

如何使用NME接入NMS 简介 NodeMediaEdge是一款部署在监控摄像机网络前端中&#xff0c;拉取Onvif或者rtsp/rtmp/http视频流并使用rtmp/kmp推送到公网流媒体服务器的工具。 通过云平台协议注册到NodeMediaServer后&#xff0c;可以同NodeMediaServer结合使用。使用图形化的管理…

相关部门回应西瓜扔鱼塘喂鱼 尾瓜处理非滞销所致

近日,有博主发布视频称广西崇左扶绥县的西瓜价格大幅下跌,部分瓜农将西瓜扔进鱼塘喂鱼,导致几万斤西瓜烂在地里。网传视频中显示,果农将西瓜扔进池塘喂鱼。5月30日,扶绥县经济作物站工作人员表示,被扔进鱼塘的主要是尾瓜和次瓜,质量不好无法销售,因此用这种方式处理。当…

今年端午节粽子刮起“低卡风” 健康轻食成新宠

临近端午,粽子成为餐桌上的主角。在全民体重管理的热潮下,“低卡”“低脂”成为今年粽子市场的新卖点。沈阳市铁西区一家生鲜超市内,各式粽子的促销柜台前挤满了前来选购的顾客。十色糙米粽子、粗粮低脂无糖粽子等主打“低糖”“低卡”的产品受到消费者青睐。销售人员表示,…

北方人不擅水战具象化了 龙舟赛翻船趣事

端午佳节当天,山东济南大明湖景区举行了一场龙舟赛,吸引了众多游客观赛。上午9时39分许,两只龙舟敲鼓出发展开角逐。然而比赛刚开始不久,一艘龙舟就翻船了,围观人群中随即传来呼声,有游客感叹道:“刚开始,就结束了。”尽管发生了意外,但所有船员都身着救生衣,应急救援…

今年1号台风迟迟不来 好事还是坏事 台风“空窗期”延长

今年北半球台风集体“迟到”。截至5月30日,西北太平洋未生成任何热带气旋。这一现象在有气象记录的76年间仅出现过6次,分别是1952年、1973年、1983年、1984年、1998年和2016年,今年可能成为第七个1至5月“零台风”开局的特殊年份。从历史统计来看,历年1号台风平均生成日期为…

龙舟赛刚开始就翻船救援队成全场最快 北方水战再添趣闻

北方人不擅水战这一说法在一次龙舟赛中再次得到印证。5月31日端午节当天,山东济南大明湖景区举办了一场龙舟比赛,吸引了大量游客前来观赛。上午9时39分左右,两只龙舟敲鼓出发开始角逐。然而比赛刚开始不久,围观人群中就传来了惊呼声,原来有一艘龙舟翻船了,有人调侃说:“…

演员方刚去世 香港影坛“第一恶人”离世

5月31日,据天津广播消息,香港知名演员方刚于5月30日去世,享年78岁。方刚原名梁芳纲,曾是无线电视及亚视电视的演员,参演了《人在边缘》《豪门》《胜者为王lll王者之战》《勾心斗角》《银狐》《马场风云》等多部作品。他演技精湛,给观众留下了深刻印象。方刚擅长饰演奸诈的…

美法院为何恢复特朗普关税政策 上诉法院临时叫停裁决

美国国际贸易法院叫停特朗普关税政策一天后,上诉法院决定恢复实施这些关税。5月29日,美国联邦巡回上诉法院批准了特朗普政府的请求,暂时搁置了美国国际贸易法院前一天做出的禁止执行依据《国际紧急经济权力法》对多国加征关税措施的裁决。联邦巡回上诉法院在裁决书中提到,在…