高效货运 - 华为OD统一考试(C卷)

OD统一考试(C卷)

分值: 200分

题解: Java / Python / C++

alt

题目描述

  1. 老李是货运公司承运人,老李的货车额定载货重量为wt;
  2. 现有两种货物,货物A单件重量为wa,单件运费利润为pa,货物B单件重量为wb,单件运费利润为pb;
  3. 老李每次发车时载货总重量刚好为货车额定载货重量wt,车上必须同时有货物A和货物B,货物A、B不可切割;
  4. 老李单车次满载运输可获得的最高利润是多少。

输入描述

第一列输入为货物A的单件重量wa,0 < wa < 10000

第二列输入为货物B的单件重量wb,0 < wb < 10000

第三列输入为货车的额定载重wt,0 < wt < 100000

第四列输入为货物A的单件运费利润pa,0 < pa < 1000

第五列输入为货物B的单件运费利润pb,0 < pb < 1000

输出描述

单次满载运输的最高利润

示例1

输入:
10 8 36 15 7输出:
44

示例2

输入:
1 1 2 1 1输出:
2

题解

题目要求:

  1. 车次满载;
  2. 同时有货物A和货物B 且 货物A、B不可切割;

解题思路:

  1. 计算货物 A 最多可以装的个数,即 n = (wt + wa - 1) / wa
  2. 使用循环枚举货物 A 的个数 ca,范围为 [1, n)。这样保证有剩余空间用于装货物 B。
  3. 判断车整好满载的条件为 (wt - wa * ca) % wb == 0,如果满足,则计算货物 B 的个数 cb
  4. 更新最高利润 maxProfit
  5. 输出最终结果 maxProfit

Java

import java.util.Scanner;/*** @author code5bug*/
public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 读取输入值int wa = scanner.nextInt(), wb = scanner.nextInt();int wt = scanner.nextInt();int pa = scanner.nextInt(), pb = scanner.nextInt();int maxProfit = 0;int n = (wt + wa - 1) / wa;  // 货物 A 最多可以装的个数for (int ca = 1; ca < n; ca++) {  // 枚举装货物 A 的个数 ca: [1, n), 这样就可以保证有剩余空间if ((wt - wa * ca) % wb == 0) {  // 车整好满载int cb = (wt - wa * ca) / wb;  // 货物 B 的个数maxProfit = Math.max(maxProfit, ca * pa + cb * pb);}}System.out.println(maxProfit);}
}

Python

wa, wb, wt, pa, pb = map(int, input().split())max_profit = 0
n = (wt + wa - 1) // wa  # 货物 A 最多可以装的个数for ca in range(1, n):  # 枚举装货物 A 的个数 ca: [1, n), 这样就可以保证有剩余空间if (wt - wa * ca) % wb == 0:  # 车整好满载cb = (wt - wa * ca) // wb   # 货物 B 的个数max_profit = max(max_profit, ca * pa + cb * pb)print(max_profit)

C++

#include <iostream>
#include <algorithm>using namespace std;int main() {// 读取输入值int wa, wb, wt, pa, pb;cin >> wa >> wb >> wt >> pa >> pb;int maxProfit = 0;int n = (wt + wa - 1) / wa;  // 货物 A 最多可以装的个数for (int ca = 1; ca < n; ca++) {  // 枚举装货物 A 的个数 ca: [1, n), 这样就可以保证有剩余空间if ((wt - wa * ca) % wb == 0) {  // 车整好满载int cb = (wt - wa * ca) / wb;  // 货物 B 的个数maxProfit = max(maxProfit, ca * pa + cb * pb);}}cout << maxProfit << endl;return 0;
}

‍❤️‍华为OD机试面试交流群每日真题分享): 加V时备注“华为od加群”

🙏整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/684484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【matalab】基于Octave的信号处理与滤波分析案例

一、基于Octave的信号处理与滤波分析案例 GNU Octave是一款开源软件&#xff0c;类似于MATLAB&#xff0c;广泛用于数值计算和信号处理。 一个简单的信号处理与滤波分析案例&#xff0c;说明如何在Octave中生成一个有噪声的信号&#xff0c;并设计一个滤波器来去除噪声。 首…

识别盐构造在预先确定造山带动力学和几何形态方面的重要性和控制作用

近几十年来&#xff0c;理解盐岩的变形已成为许多含盐褶皱冲断带中日益受到关注的研究课题。越来越多的研究指出&#xff0c;继承性正断层及与之相连的盐构造在预先确定造山带动力学和几何形态方面的重要性和控制作用&#xff08;例如&#xff0c;在北石灰岩阿尔卑斯地区有Gran…

从数字孪生到智慧城市:科技引领下的城市未来展望

一、引言 随着科技的飞速发展&#xff0c;数字孪生和智慧城市已成为当今世界城市发展的重要趋势。数字孪生通过建立物理世界的数字模型&#xff0c;为城市管理和规划提供了前所未有的可能性&#xff1b;而智慧城市则借助先进的信息通信技术&#xff0c;使城市运行更加高效、便…

关于 TI Bq40Z551 Cell Swelling Protection的理解

“Cell Swelling Protection”&#xff08;电池膨胀保护&#xff0c;俗称鼓包&#xff09;是指一种保护措施&#xff0c;用于防止充电时电池发生过度膨胀的情况。 当充电电池过度膨胀时&#xff0c;可能会对设备的性能和安全造成威胁&#xff0c;包括电池的寿命缩短、电池损坏…

python调用智谱ai 大模型的完整步骤 (国内的 AI 大模型 对话)

要使用Python调用智谱AI的API进行异步调用&#xff0c;您需要遵循以下步骤&#xff1a; 1. **获取API密钥**&#xff1a; - 您需要从智谱AI平台获取一个API密钥&#xff08;API Key&#xff09;&#xff0c;这个密钥将用于所有API请求的身份验证。 2. **安装…

Springmvc 的参数绑定之list集合

标签中name属性的值就是pojo类的属性名 参数绑定4 list [对象] <form action"teaupd.do" method"post"> <c:forEach items"${list}" var"tea" varStatus "status"> 教师编号&#xff1a;<input…

C语言学习day14:跳转语句

今天学习的跳转语句主要是三种&#xff1a; break continue goto 上一篇文章已经说过了break和continue break&#xff1a;结束这个循环 continue&#xff1a;结束当前的循环迭代&#xff0c;进行下一次的迭代 看看二者代码的区别 代码&#xff08;break&#xff09;&am…

嵌入式I2C 信号线为何加上拉电阻(图文并茂)

IIC 是一个两线串行通信总线&#xff0c;包含一个 SCL 信号和 SDA 信号&#xff0c;SCL 是时钟信号&#xff0c;从主设备发出&#xff0c;SDA 是数据信号&#xff0c;是一个双向的&#xff0c;设备发送数据和接收数据都是通过 SDA 信号。 在设计 IIC 信号电路的时候我们会在 SC…

相机图像质量研究(19)常见问题总结:CMOS期间对成像的影响--Sensor Noise

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

C# VS2022+WinForm+Oracle19.3+Excel,根据数据库表定义书生成SQL

目标&#xff1a; 用Excel写数据库的表的定义书&#xff0c;用该工具生成SQL&#xff0c;在客户端执行&#xff0c;把表结构导入数据库&#xff0c;生成真正的表 Github代码下载 目录 0.完成下面开发环境的准备1 操作系统Win11 专业版 21H22 oracle 19.33 Visual Studio Commun…

22.常用的DOM操作

1&#xff09;DOM 节点的获取 DOM 节点的获取的API及使用&#xff1a; getElementById // 按照 id 查询 getElementsByTagName // 按照标签名查询 getElementsByClassName // 按照类名查询 querySelectorAll // 按照 css 选择器查询// 按照 id 查询 var imooc document.getE…

C++,stl,常用遍历查找算法

目录​​​​​​​ 1.常用遍历算法 for_each transform 2.常用查找算法 find find_if adjacent_find binary_search count count_if 1.常用遍历算法 for_each #include<bits/stdc.h> using namespace std;void print(int v) {cout << v << ; }…

AVL_Cruise后处理(中文

下载 https://download.csdn.net/download/jintaihu/68332464

Linux--编译器-gcc/g++使用

目录 前言 1.看一段样例 2.程序的翻译过程 1.第一个阶段&#xff1a;预处理 2.第二个阶段&#xff1a;编译 3.第三个阶段&#xff1a;汇编 4.第四个阶段&#xff1a;链接 3.程序的编译为什么是这个样子&#xff1f; 4. 关于编译器 5.链接&#xff08;动静态链接&#x…

Three.js学习7:dat.GUI 参数控制

-----------------------------华丽的分割线--------------------- 相关代码均已上传到 gitee 中&#xff1a;myThree: 学习 Three.js &#xff0c;努力加油~&#xff01; Gitee 静态演示地址&#xff1a;Three JS 演示页面 -----------------------------华丽的分割线------…

基于STM32的激光测距系统设计

摘要: 随着科技的进步,激光测距技术因其高精度、快速响应和强抗干扰能力被广泛应用于各种领域。本文旨在设计一种基于STM32微控制器的激光测距系统,通过激光发射与接收技术,结合STM32的卓越性能,实现准确、高效的距离测量。 关键词: STM32;激光测距;微控制器;硬件设计…

【重要】django默认生成的表的意思记录

accounts_userprofile: 这是与用户相关的个人资料表&#xff0c;通常包含用户的额外信息&#xff0c;比如头像、个人描述等。 accounts_userprofile_groups: 这是用户个人资料和用户组之间的关联表&#xff0c;用于记录用户属于哪些用户组。 accounts_userprofile_user_permiss…

【防火墙讲解】

防火墙讲解 1. 介绍2. 防火墙实现的基本功能3. 防火墙的类型4. 防火墙的配置和管理5. 防火墙与安全 1. 介绍 防火墙是计算机网络安全系统的核心组件&#xff0c;主要目的是在私有网络和公共网络&#xff08;例如互联网&#xff09;之间建立一道防线&#xff0c;以保护内部网络…

TCP_IP(6)

网络层 在复杂的网络环境中确定一个合适的路径. IP协议 与TCP协议并列,都是网络体系中最核心的协议. 基本概念 主机:配有IP地址,但是不进行路由控制的设备; 路由器:即配有IP地址,又能进行路由控制; 节点:主机和路由器的统称; 协议头格式 4位版本号(version):指定IP协议的版…

【面试】盘点10个高频的前端算法题,你全都会了吗?

前言 &#x1f4eb; 大家好&#xff0c;我是南木元元&#xff0c;热爱技术和分享&#xff0c;欢迎大家交流&#xff0c;一起学习进步&#xff01; &#x1f345; 个人主页&#xff1a;南木元元 现在前端的面试中&#xff0c;算法出现的频率越来越高了&#xff0c;大厂更是必考算…