当前位置: 首页 > news >正文

(100分)- 快递运输(Java JS Python C)

(100分)- 快递运输(Java & JS & Python & C)

题目描述

一辆运送快递的货车,运送的快递放在大小不等的长方体快递盒中,为了能够装载更多的快递,同时不能让货车超载,需要计算最多能装多少个快递。

注:快递的体积不受限制,快递数最多1000个,货车载重最大50000

输入描述

第一行输入每个快递的重量,用英文逗号隔开,如 5,10,2,11

第二行输入货车的载重量,如 20

输出描述

输出最多能装多少个快递,如 3

备注

不需要考虑异常输入

用例
输入

5,10,2,11
20

输出3
说明货车的载重量为20,最多只能放三个快递5、10、2,因此输出3
题目解析

这个问题可以建模为经典的01背包问题:

核心对应关系如下:

  • 货车的载重量 → 背包的最大承重
  • 快递物品 → 待装入背包的物品
  • 快递重量 → 物品的重量
  • 每件快递 → 价值为1的单位物品

解题目标转化为:在不超过货车载重的前提下,选择尽可能多的快递,相当于在01背包问题中求取价值最大化(每件物品价值均为1时的最优解)。


这道题的关键在于运送尽可能多的快递而不超载。

解决思路如下:

  1. 将快递按重量从小到大排序
  2. 从最轻的快递开始依次累加
  3. 当累加重量超过限载时停止,此时已装载的快递数量即为最大值

这种贪心算法的正确性在于:

  • 要最大化快递数量,就应该优先选择重量最小的
  • 每一步都选择当前最优解(最轻的快递)
  • 最终就能得到全局最优解(最多快递数量)
Java算法源码
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] weights = Arrays.stream(sc.nextLine().split(",")).mapToInt(Integer::parseInt).toArray(); int limit = Integer.parseInt(sc.nextLine()); System.out.println(getResult(weights, limit)); } public static int getResult(int[] weights, int limit) { Arrays.sort(weights); int count = 0; int sum = 0; for (int w : weights) { // 每次都选择重量最小的快递加入 sum += w; if (sum > limit) break; count++; } return count; } }
JS算法源码
/* JavaScript Node ACM模式 控制台输入获取 */ const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const lines = []; rl.on("line", (line) => { lines.push(line); if (lines.length === 2) { const weights = lines[0].split(",").map(Number); const limit = parseInt(lines[1]); console.log(getResult(weights, limit)); lines.length = 0; } }); function getResult(weights, limit) { weights.sort((a, b) => a - b); let count = 0; let sum = 0; for (let w of weights) { sum += w; if (sum > limit) break; count++; } return count; }
Python算法源码
# 输入获取 weights = list(map(int, input().split(","))) limit = int(input()) # 算法入口 def getResult(): weights.sort() total = 0 count = 0 for w in weights: total += w if total > limit: break count += 1 return count # 调用算法 print(getResult())
C算法源码
#include <stdio.h> #include <stdlib.h> #define MAX_SIZE 1000 int getResult(int weights[], int weights_size, int limit); int main() { int weights[MAX_SIZE]; int weights_size = 0; while(scanf("%d", &weights[weights_size++])) { if(getchar() != ',') break; } int limit; scanf("%d", &limit); printf("%d\n", getResult(weights, weights_size, limit)); return 0; } int cmp(const void* a, const void* b) { return (*(int*) a) - (*(int*) b); } int getResult(int weights[], int weights_size, int limit) { qsort(weights, weights_size, sizeof(int), cmp); int count = 0; int sum = 0; for(int i = 0; i < weights_size; i++) { sum += weights[i]; if(sum > limit) { break; } count++; } return count; }
http://www.jsqmd.com/news/433950/

相关文章:

  • (100分)- 考勤信息(Java JS Python C)
  • 2026年比较好的大型推拉棚/定制推拉棚精选厂家推荐 - 品牌宣传支持者
  • (100分)- 密码输入检测(Java JS Python C)
  • (100分)- 密钥格式化(Java JS Python)
  • 电动夹爪哪家更靠谱?自动化产线专用夹爪品牌实测对比推荐 - 品牌2026
  • 2026年知名的推拉棚销售厂家哪家好 - 品牌宣传支持者
  • 2026年电磁夹爪供应商怎么挑?可靠供应商厂家名单与选型要点 - 品牌2026
  • 【小沐学AI】解锁Claude Code,小白也能玩转AI编程
  • 2026年知名的灯带批发/灯带定制值得信赖的生产厂家 - 品牌宣传支持者
  • 基于Java+SSM+Flask智能训练管理平台(源码+LW+调试文档+讲解等)/智能训练/管理平台/训练软件/训练系统/智能化训练/训练计划/训练效果评估/训练数据分析/训练管理解决方案
  • 基于Java+SSM+Flask儿童教育网站(源码+LW+调试文档+讲解等)/儿童教育/教育网站/儿童学习/网上教育/孩子教育/学习资源/儿童成长/教育资源/儿童乐园/在线课程
  • 小白刷力扣100(3)-最长连续序列
  • 企业级健身俱乐部网站管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • Java Web 考研互助交流平台系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • SpringBoot+Vue 疫情防控管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL
  • 电动自行车违法智能识别
  • 智能安防中的行人识别技术
  • 2026年热门的智能家具用电线材实力工厂怎么选 - 品牌宣传支持者
  • 【2025最新】基于SpringBoot+Vue的科研管理系统管理系统源码+MyBatis+MySQL
  • Linux系统常用命令(其三)进程与系统监控、文件权限
  • 双臂协作机器人 LZDR750-5NLF 介绍
  • 跨国企业在中国月报 | 雀巢、资生堂、迪士尼、迪卡侬、蔡司、立邦、DHL等公司动态
  • Rust 语言开发的 Linux 桌面来了
  • Linux救援模式是什么,如何使用
  • Linux 程序地址空间深度解析:虚拟地址背后的真相
  • 【实战复盘】TryBanana2:基于 Nano Banana 2 的 4K AI 图像生成与编辑工作流
  • 2026年口碑好的手刹冲压件值得信赖的生产厂家 - 品牌宣传支持者
  • 2026年靠谱的油烟净化风机实力厂家如何选 - 品牌宣传支持者
  • 中国电缆一线品牌推荐:2026年3月中国电缆标杆品牌推荐 - 品牌2026
  • 中国电缆一线品牌推荐:石油石化、矿山煤矿、变频、光伏电缆等品牌推荐 - 品牌2026