背包问题:购物单问题(牛客HJ6)中等
一、问题描述二、解题思路(好难--看代码注释)背包问题1.第一步先把所有物品全部缓存物品编号1~m2.第二步只遍历主件创建分组记录belong映射记录第几个物品属于第几组主件组下标3.第三步遍历附件此时所有主件都已建好不会越界4.01背包DP数组dp[j]表示花j元的最大满意度# 取出最多两个附件不足补(0,0)# 01背包逆序遍历预算三、代码n,m map(int,input().split()) # 第一步先把所有物品全部缓存物品编号1~m all_goods [] for i in range(1,m1): # 循环 for i in range(m) → i 从 0 开始但题目物品编号是 1、2、3… # 后面附件的 qi 是物品编号≥1belong[qi] 会错位 vi,wi,qi map(int,input().split()) val int(vi)*int(wi) all_goods.append((i,vi,val,qi)) # 第二步只遍历主件创建分组记录belong映射 # 记录第几个物品属于第几组主件组下标 belong [0]*(m1) groups [] for j,vi,val,qi in all_goods: if qi 0: groups.append([vi,val,[]]) belong[j] len(groups)-1 # 第三步遍历附件此时所有主件都已建好不会越界 for k,vi,val,qi in all_goods: if qi ! 0: gid belong[qi] groups[gid][2].append((vi,val)) # append 只能加 1 个元素附件存元组 (vi, val) # 背包问题 # subs 是当前主件自带的附件列表sub1 取第 1 个附件、sub2 取第 2 个附件附件不足就填 (0,0) 占位 # 拆出 v1附件价格、val1附件满意度v2、val2 同理 # plans 打包 4 套合法组合同一组里只能 4 选 1不能同时选多套 # range(n, -1, -1) 就是从总预算 n 开始每次 - 1一路循环到 0。 # 01背包DP数组dp[j]表示花j元的最大满意度 dp [0]*(n1) for g in groups: v0,val0,q0 g # 取出最多两个附件不足补(0,0) # q0 才是附件列表,不能 len(sub1)sub1 还没定义 # 逻辑判断附件列表 q0 的长度 sub1 q0[0] if len(q0)1 else (0,0) # 取第二个附件需要长度2 # 主件没有附件q0 []长度 len(q0)0 # 主件只有 1 个附件q0 [(30,10)]长度 len(q0)1 # 主件有 2 个附件q0 [(30,10),(50,20)]长度 len(q0)2 sub2 q0[1] if len(q0)2 else (0,0) v1,val1 sub1 v2,val2 sub2 plans [ (v0,val0), (v0v1,val0val1), (v0v2,val0val2), (v0v1v2,val0val1val2) ] # 01背包逆序遍历预算 for j in range(n,-1,-1): for cost,score in plans: if j cost: # 现在我手上有 j 元如果我选择这套搭配这套搭配要花 cost 元。 # 那剩下 j-cost 元之前能拿到的最大满意度是 dp[j-cost]加上这套方案的收益 score就是新总满意度。 # 如果这个新满意度比原来 dp[j] 的数值更大就更新它。 dp[j] max(dp[j],dp[j-cost]score) print(max(dp))

相关新闻

Claude Mythos:首个具备自主渗透能力的AI安全模型

Claude Mythos:首个具备自主渗透能力的AI安全模型

1. 项目概述:一场静默却震耳欲聋的AI能力跃迁这周,整个AI安全圈没有爆炸性新闻稿,没有铺天盖地的发布会直播,只有一份措辞克制、数据密集的系统卡片(System Card)和一份由英国AI安全研究所(AISI…

2026/7/15 21:50:20阅读更多 →
Visual C++ Redistributable AIO:5分钟搞定所有DLL错误,让Windows程序流畅运行

Visual C++ Redistributable AIO:5分钟搞定所有DLL错误,让Windows程序流畅运行

Visual C Redistributable AIO:5分钟搞定所有DLL错误,让Windows程序流畅运行 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经打…

2026/7/15 21:50:20阅读更多 →
西贡旧梦主题越南融合餐厅整体设计方案

西贡旧梦主题越南融合餐厅整体设计方案

在城市繁华之处,峰域空间设计为您打造了一场穿越时空的美食之旅——西贡旧梦主题越南融合餐厅。设计灵感源于越南顺化的“阮屋”与会安的“管屋”,我们将传统建筑精髓与现代元素完美融合。两层空间布局,既有对传统美学的深情拥抱,…

2026/7/15 21:45:19阅读更多 →
深入解析 Apache Doris 的 Backend 组件

深入解析 Apache Doris 的 Backend 组件

1. Backend 概述 Apache Doris 是一个现代化的 MPP(大规模并行处理)分析型数据库,其高性能和易用性很大程度上得益于其精巧的架构设计。在 Doris 的架构中,Backend(BE) 是负责数据存储与查询执行的核心计算…

2026/7/15 23:50:36阅读更多 →
基于Python与Qt的CANalyst-II二次开发:打造高效固件更新上位机

基于Python与Qt的CANalyst-II二次开发:打造高效固件更新上位机

1. CANalyst-II二次开发入门指南如果你正在寻找一种高效的方式来更新嵌入式设备的固件,那么基于Python和Qt的CANalyst-II二次开发方案绝对值得考虑。CANalyst-II是创芯科技推出的一款高性能CAN总线分析仪,通过二次开发可以将其变成一个功能强大的固件更新…

2026/7/15 23:50:36阅读更多 →
深入解析 Apache Doris 的回滚机制

深入解析 Apache Doris 的回滚机制

1. 引言在数据库和数据仓库系统中,回滚机制是保障数据一致性和事务原子性的核心功能。Apache Doris 作为一款高性能、实时的MPP分析型数据库,其回滚机制的设计兼顾了分析场景的高吞吐需求与数据操作的可靠性。本文将深入解析 Doris 回滚机制的原理、实现…

2026/7/15 23:50:36阅读更多 →
Unity引擎:赋能跨领域创新的实时3D内容创作平台

Unity引擎:赋能跨领域创新的实时3D内容创作平台

1. Unity引擎:从游戏开发工具到跨行业实时3D创作平台的蜕变2005年诞生的Unity最初只是一个简单的3D游戏开发工具,如今已成长为覆盖游戏、汽车、建筑、影视、工业仿真等领域的全栈式实时3D内容创作平台。这个转变背后是实时渲染技术的突破与可视化工作流的…

2026/7/15 23:50:36阅读更多 →
Doris 磁盘空间不足的扩容方法详解

Doris 磁盘空间不足的扩容方法详解

1. 引言Apache Doris 作为一款高性能的实时分析数据库,其数据存储依赖于本地磁盘。随着业务数据的不断增长,磁盘空间不足成为运维中常见的问题。本文将详细介绍 Doris 磁盘空间不足时的多种扩容方法,包括数据目录扩容、BE 节点扩容、数据清理…

2026/7/15 23:50:36阅读更多 →
FPGA视频采集转GTY光口传输系统设计:从Aurora 8b/10b协议解析到6套工程源码实战

FPGA视频采集转GTY光口传输系统设计:从Aurora 8b/10b协议解析到6套工程源码实战

1. Aurora 8b/10b协议解析与GTY光口传输基础第一次接触Aurora协议时,我被它简洁高效的特性所吸引。这个由Xilinx开发的轻量级链路层协议,专为FPGA高速串行通信设计,特别适合视频传输这类对实时性要求高的场景。Aurora 8b/10b协议的核心思想是…

2026/7/15 23:45:36阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/15 6:42:19阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/15 6:12:45阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/15 10:54:00阅读更多 →
AI框架决定企业AI能走多远

AI框架决定企业AI能走多远

企业AI建设的第一性原理 企业搞AI,最关键的决定是什么?不是选哪家大模型,不是先做哪个场景,不是招多少AI人才——而是选哪个AI开发框架。 为什么?因为框架决定了企业AI能力的"天花板"。选对了框架&#xff0…

2026/7/15 0:01:30阅读更多 →
Java企业为什么需要AI框架

Java企业为什么需要AI框架

Java企业在AI时代的尴尬处境 Java是全球企业级应用开发的主流语言——全球超过一半的企业系统跑在Java上。但在AI浪潮面前,很多Java企业感到尴尬:大模型的接口是各种语言的,AI开发社区以其他语言为主流,似乎Java在AI时代"掉队…

2026/7/15 0:01:30阅读更多 →
CC3230x嵌入式开发实战:SD主机、定时器与低功耗模式深度解析

CC3230x嵌入式开发实战:SD主机、定时器与低功耗模式深度解析

1. 项目概述:为什么需要关注CC3230x的SD主机、定时器与低功耗?在物联网和嵌入式设备开发领域,我们常常面临一个核心矛盾:设备需要具备强大的连接能力、可靠的数据存储和实时控制功能,同时又必须严格控制功耗以延长电池…

2026/7/15 0:01:30阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/15 15:50:47阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/15 8:52:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/15 14:06:23阅读更多 →