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

news2024/11/26 5:27:43

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.coloradmin.cn/o/1451291.html

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

相关文章

函数、极限、连续——刷题(3

目录 1.题目&#xff1a;2.解题思路和步骤&#xff1a;3.总结&#xff1a;小结&#xff1a; 1.题目&#xff1a; 2.解题思路和步骤&#xff1a; 3.总结&#xff1a; 首先还是考虑好所有情况&#xff08;所有情况见&#xff1a;函数、极限、连续——刷题&#xff08;1&#xff…

适用于Android 的 7 大短信恢复应用程序

对于 Android 用户来说&#xff0c;丢失重要的短信可能是一种令人沮丧的体验。幸运的是&#xff0c;有许多短信恢复应用程序可以帮助恢复丢失或删除的短信。在本文中&#xff0c;将与您分享 7 个最佳短信恢复应用程序&#xff0c;并帮助您找到可用于恢复已删除消息的最佳应用程…

机器学习分类评估四个术语TP,FP,FN,TN

分类评估方法主要功能是用来评估分类算法的好坏&#xff0c;而评估一个分类器算法的好坏又包括许多项指标。了解各种评估方法&#xff0c;在实际应用中选择正确的评估方法是十分重要的。 这里首先介绍几个常见的模型评价术语&#xff0c;现在假设我们的分类目标只有两类&#x…

LeetCode.107. 二叉树的层序遍历 II

题目 107. 二叉树的层序遍历 II 分析 这个题目考查的是二叉树的层序遍历&#xff0c;对于二叉树的层序遍历&#xff0c;我们需要借助 队列 这种数据结构。再来回归本题 &#xff0c;我们只需要将 二叉树的层序遍历的结果逆序&#xff0c;就可以得到这道题我们要求的答案了。…

交通管理|交通管理在线服务系统|基于Springboot的交通管理系统设计与实现(源码+数据库+文档)

交通管理在线服务系统目录 目录 基于Springboot的交通管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、驾驶证业务管理 3、机动车业务管理 4、机动车业务类型管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计…

【BBuf的CUDA笔记】十四,OpenAI Triton入门笔记二

0x0. 前言 接着【BBuf的CUDA笔记】十三&#xff0c;OpenAI Triton 入门笔记一 继续探索和学习OpenAI Triton。这篇文章来探索使用Triton写LayerNorm/RMSNorm kernel的细节。 之前在 【BBuf的CUDA笔记】十二&#xff0c;LayerNorm/RMSNorm的重计算实现 这篇文章我啃过Apex的La…

HTTP 超文本传送协议

1 超文本传送协议 HTTP HTTP 是面向事务的 (transaction-oriented) 应用层协议。 使用 TCP 连接进行可靠的传送。 定义了浏览器与万维网服务器通信的格式和规则。 是万维网上能够可靠地交换文件&#xff08;包括文本、声音、图像等各种多媒体文件&#xff09;的重要基础。 H…

基于Transformer的机器学习模型的主动学习

主动学习和基于Transformer的机器学习模型的结合为有效地训练深度学习模型提供了强有力的工具。通过利用主动学习&#xff0c;数据科学家能够减少训练模型所需的标记数据的数量&#xff0c;同时仍然达到高精度。本文将探讨基于Transformer的机器学习模型如何在主动学习环境中使…

如何创建和填写 PDF 表单,简化您的文档工作流

阅读本文&#xff0c;了解如何在开源办公套件 ONLYOFFICE 中创建和填写 PDF 表单。 ONLYOFFICE表单发展小史 ONLYOFFICE 表单首个版本发布于2022年1月18日&#xff0c;是 ONLYOFFICE 版本 7.0 更新的一部分。 您可以使用 ONLYOFFICE 表单&#xff0c;创建各种类型的模板文档&a…

ssm的网上招聘系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; ssm的网上招聘系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring SpringMv…

【Java从入门到精通】Java修饰符

目录 Java 修饰符 访问控制修饰符 默认访问修饰符-不使用任何关键字 实例 私有访问修饰符-private 公有访问修饰符-public 受保护的访问修饰符-protected 访问控制和继承 非访问修饰符 static 修饰符 final 修饰符 实例 abstract 修饰符 实例 实例 synchronized…

安卓手机如何连接投影仪?这里提供详细步骤

安卓设备很棒,但它们的小屏幕有时会有局限性。当你将设备连接到投影仪时,你可以与他人共享屏幕以进行商务或娱乐。以下是一些方法。 如果你没有投影仪,你也可以将Android连接到电视。不过,投影仪是更好的选择,因为它们通常投影的屏幕比电视大得多,是媒体播放或数据演示的…

【前端高频面试题--git篇】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;前端高频面试题 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 前端高频面试题--git篇 往期精彩内容常用命令git add 和 git stage 有什么区别怎么使用git连接…

.NET Core WebAPI中封装Swagger配置

一、创建相关文件 创建一个Utility/SwaggerExt文件夹&#xff0c;添加一个类 二、在Program中找到Swagger相关配置信息 三、添加方法&#xff0c;在Program中调用 在SwaggerExt类中添加方法&#xff0c;将相关配置添写入 /// <summary> /// swagger配置 /// </sum…

算法——组合数学——二项式定理

杨辉三角是二项式系数的典型应用当 n 较大&#xff0c;且需要取模时&#xff0c;二项式系数有两种计算方法&#xff1a; 一&#xff1a;递推公式&#xff0c;二&#xff1a;逆 方法一&#xff1a;用递推公式计算二项式系数 public class BinomialCoefficient {public static i…

Fiddler抓包(网页、手机、MUMU模拟器)

前置条件&#xff1a;电脑上下载安装好了Fiddler&#xff0c;有浏览器 一、网页抓包 1、fiddler下载安装证书 Tools-Options 勾选下面两个框 点击下面的选项&#xff0c;信任证书 会弹出弹窗&#xff0c;点击yes&#xff08;这个时候注意&#xff0c;DO_NOT_TRUST_FiddlerRo…

开启AI新篇章:全新GPT-4订阅方案! ChatGPTPlus(GPT4)支付渠道! 付费充值!

1. GPT-4订阅价格 以每月仅20美元的价格&#xff0c;引领您进入GPT-4的强大数字体验世界。作为前沿的语言模型&#xff0c;GPT-4为您的工作和创造带来了无与伦比的生产力提升&#xff0c;彻底改变您的工作和创造方式。 GPT-4不仅具有卓越的自然语言处理能力&#xff0c;还引入…

【Linux】Linux编译器-gcc/g++ Linux项目自动化构建工具-make/Makefile

目录 Linux编译器-gcc/g使用 1.背景知识 Linux中头文件的目录在 Linux 库 条件编译的典型应用 2.gcc如何完成 动态库 vs 静态库 debug && release Linux项目自动化构建工具-make/Makefile 背景 用法 特殊符号 Linux编译器-gcc/g使用 1.背景知识 预处理&am…

platformio 提示 fatal error: TimeLib.h: No such file or directory 的解决方案

在platformio编译arduino项目的时候&#xff0c;如果提示fatal error: TimeLib.h: No such file or directory&#xff0c;解决方法有2&#xff1a; 方法1&#xff1a; 在项目的platformio.ini文件中&#xff0c;添加 lib_deps # Using library Id44方法2&#xff1a; 通过…

Java Web 中forward 和 redirect 的区别

前言 在Java Web开发中&#xff0c;页面跳转是构建用户界面和实现业务逻辑的重要组成部分。Forward&#xff08;转发&#xff09;和Redirect&#xff08;重定向&#xff09;是两种常见的跳转方式&#xff0c;它们分别具有不同的特点和适用场景。正确地选择和使用这两种跳转方式…