ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

8.9华为OD机试真题 新系统 - 云南菌子加工 (Java/Py/C/C++/Js/Go)

2026/8/13 23:48:57 拓冰建站 浏览量
8.9华为OD机试真题 新系统 - 云南菌子加工 (Java/Py/C/C++/Js/Go) 云南菌子加工2026 华为OD机试真题 8月9日华为OD上机新系统考试真题 200 分题型点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解题目描述云南的菌子加工厂要加工一批野生菌,所有菌子同时进厂。由于菌子新鲜度随时间流失,价值不断衰减。工厂不能同时加工菌子,即逐个串行加工,正在加工的菌子价值不再衰减,加工完毕立即售卖。已知每个菌子的初始市场价值和新鲜度衰减速度(每小时损失的价值),菌子的实际价值 = 初始价值 - 衰减速度 × 从进入工厂到开始加工的等待时间。在给定时间内,合理安排加工顺序使得加工完成的菌子总价值最大化。每个菌子的加工时间固定为 5 小时,加工所有菌子的总耗时不能超过给定的总加工时间。若菌子的实际价值衰减至零或负值,则不能再售卖,即不需要参与加工。输入描述输入为四行:count total values decayscount表示菌子数量,1 = count = 15total表示可用总加工时间,5 = total = 75,单位小时values[i]表示第i个菌子的初始市场价值decays[i]表示第i个菌子的衰减速度数组values和decays按示例使用英文逗号分隔。输出描述输出一个整数,表示在给定时间内能加工完成的菌子的最大总价值。示例1输入3 15 10,8,6 0,0,0输出24示例2输入3 20 20,10,15 3,1,2输出25解题思路核心思想count = 15,可以用二进制状态mask表示已经加工过的菌子集合。若mask中有cnt个菌子,则下一个菌子的开始加工时间为cnt * 5。枚举下一个可加工且当前价值仍为正的菌子,更新新状态的最大收益。算法步骤最多能加工total / 5个菌子。定义dp[mask]表示已经加工集合为mask时可获得的最大总价值。初始