高效货运 - 华为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加群”

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Fluke ADPT 连接器新增对福禄克万用 Fluke 15B Max 的支持

所需设备&#xff1a; 1、Fluke ADPT连接器&#xff1b; 2、Fluke 15B Max&#xff1b; Fluke 15B Max拆机图&#xff1a; 显示界面如下图&#xff1a; 并且可以将波形导出到EXCEL: 福禄克万用表需要自己动手改造&#xff01;&#xff01;&#xff01;

【C++第二阶段-重载-关系运算符函数调用】

你好你好&#xff01; 以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 关系运算符-重载-判断相等函数调用运算符重载 关系运算符-重载-判断相等 场景&#xff1a;两个对象&#xff0c;若有年龄和性别的不同&#xff0c;是否可以直…

AI数据中心网络架构需求:400/800G光模块

随着AI技术和相关应用的不断发展&#xff0c;大模型、大数据和AI计算能力在AI发展中的重要性日益凸显。大模型和数据集构成AI研究的软件基础&#xff0c;而AI算力是关键的基础设施。在本文中&#xff0c;我们将探讨AI发展对数据中心网络架构的影响。 Fat-Tree数据中心网络架构…

Spring Boot结合MinIO 实现文件切片极速上传!

本文将介绍如何使用Spring Boot和MinIO实现文件切片极速上传技术&#xff0c;通过将大文件分割成小片段并并行上传&#xff0c;显著提高文件上传速度。 2 文件切片上传简介 文件切片上传是指将大文件分割成小的片段&#xff0c;然后通过多个请求并行上传这些片段&#xff0c;最…

【C++】实现Date类的各种运算符重载

上一篇文章只实现了operator操作符重载&#xff0c;由于运算符较多&#xff0c;该篇文章单独实现剩余所有的运算符重载。继续以Date类为例&#xff0c;实现运算符重载&#xff1a; 1.Date.h #pragma once#include <iostream> #include <assert.h>using namespace …

相机图像质量研究(24)常见问题总结:CMOS期间对成像的影响--摩尔纹

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

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

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

GPIO八种工作模式

目录 一、推挽输出 二、开漏输出 三、复用推挽输出 四、复用开漏输出 五、浮空输入 六、上拉输入 七、下拉输入 八、模拟输入 GPIO八种配置模式&#xff0c;原理和使用场景&#xff0c;硬件原理如下图&#xff1a; 一、推挽输出 1、 原理 当控制栅极为低电平时&#x…

【Visual Studio】使用空格替换制表符

环境 VS版本&#xff1a;VS2013 问题 如何生成空格替换制表符&#xff1f; 步骤 1、菜单 工具->选项&#xff0c;文本编辑器->C/C->制表符&#xff0c;选择【插入空格】。

free pascal:fpwebview 组件通过 JSBridge 调用本机TTS

从 https://github.com/PierceNg/fpwebview 下载 fpwebview-master.zip 简单易用。 先请看 \fpwebview-master\README.md cd \lazarus\projects\fpwebview-master\demo\js_bidir 学习 js_bidir.lpr &#xff0c;编写 js_bind_speak.lpr 如下&#xff0c;通过 JSBridge 调用本…

php基础学习之可变函数(web渗透测试关键字绕过rce于回调函数)

可变函数 看可变函数的知识点之前&#xff0c;蒟蒻博主建议你先去看看php的可变变量&#xff0c;会更加方便理解&#xff0c;在本篇博客中的第五块知识点->php基础学习之变量-CSDN博客 描述 当一个变量所保存的值刚好是一个函数的名字&#xff08;由函数命名规则可知该值必…

挑战杯 python区块链实现 - proof of work工作量证明共识算法

文章目录 0 前言1 区块链基础1.1 比特币内部结构1.2 实现的区块链数据结构1.3 注意点1.4 区块链的核心-工作量证明算法1.4.1 拜占庭将军问题1.4.2 解决办法1.4.3 代码实现 2 快速实现一个区块链2.1 什么是区块链2.2 一个完整的快包含什么2.3 什么是挖矿2.4 工作量证明算法&…

精炼爆炸性新闻!OpenAI发布革命性AI视频生成模型Sora:实现长达60秒的高清视频创作「附AIGC行业系统搭建」

在人工智能领域&#xff0c;每一次技术革新都引领着未来的发展方向。OpenAI&#xff0c;作为全球领先的人工智能研究机构&#xff0c;再次证明了其在推动AI技术革新方面的领导地位。近日&#xff0c;OpenAI宣布推出了一款革命性的AI视频生成模型——Sora&#xff0c;这一大胆的…

Java实现实现自动化pdf打水印小项目 使用技术pdfbox、Documents4j

文章目录 前言源码获取一、需求说明二、 调研pdf处理工具word处理工具 三、技术栈选择四、功能实现实现效果详细功能介绍详细代码实现项目目录WordUtilsMain类实现部分&#xff1a;第一部分Main类实现部分&#xff1a;第二部分Main类实现部分&#xff1a;第三部分 资料获取 前言…

算法详解(力扣141——环形链表系列)

博主ID&#xff1a;代码小豪 文章目录 环形链表环形链表的性质分析快慢指针法指针的追及相遇问题 环形链表&#xff08;2&#xff09; 环形链表 先来看看环形链表的原题&#xff1a; 中间的部分叙述有点繁杂&#xff0c;简单来概括就是&#xff0c;假如有一个节点&#xff0c…

SAP PP学习笔记- 豆知识01 - 怎么查询既存品目

SAP系统当中已经有哪些品目要怎么查询呢&#xff1f; 1&#xff0c;MM60 品目一览 这里可以输入Plant&#xff0c;然后可以查询该工厂的所有品目。 2&#xff0c;SE16 > MARA MARA 品目一般Data&#xff0c;存放的是品目基本信息。 如果要查询该品目属于哪个Plant&#x…

【研究生复试】计算机软件工程人工智能研究生复试——资料整理(速记版)——计算机网络

1、JAVA 2、计算机网络 3、计算机体系结构 4、数据库 5、计算机租场原理 6、软件工程 7、大数据 8、英文 自我介绍 2. 计算机网络 1. TCP如何解决丢包和乱序&#xff1f; 序列号&#xff1a;TCP所传送的每段数据都有标有序列号&#xff0c;避免乱序问题发送端确认应答、超时…

[01] Vue2学习准备

目录 vue理解创建实例插值表达式 {{}}响应式特性 vue理解 Vue.js 是一套构建用户界面的渐进式框架。 Vue 只关注视图层&#xff0c; 采用自底向上增量开发的设计。 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 创建实例 准备容器 <div id…

问题:如果要编辑建好的建筑和空间,需要在分级按钮( )和细分操作按钮楼层下,才能选中建筑物和空间; #微信#媒体#其他

问题&#xff1a;如果要编辑建好的建筑和空间&#xff0c;需要在分级按钮&#xff08; &#xff09;和细分操作按钮楼层下&#xff0c;才能选中建筑物和空间&#xff1b; A、楼层 B、规划图 C、全景 D、建筑物 参考答案如图所示

JVM(3)高级篇

1 GraalVM 1.1 什么是GraalVM GraalVM是Oracle官方推出的一款高性能JDK&#xff0c;使用它享受比OpenJDK或者OracleJDK更好的性能。 GraalVM的官方网址&#xff1a;https://www.graalvm.org/ 官方标语&#xff1a;Build faster, smaller, leaner applications。 更低的CPU、内…