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

从栈中取出K个硬币的最大面值和-分组背包

2218. 从栈中取出 K 个硬币的最大面值和 - 力扣(LeetCode)

Solution

比较神奇的思路,注意到每次只能从栈中取出前i个元素,每个单独数字的重量为1,于是就可以转化为一个经典的分组背包问题。

这里的一个代价定义也比较重要,由于只能取k次,相当于背包容量是k,每个数字的重量为1。

#include<iostream>
#include<vector>
using namespace std;class Solution {
public://每个栈都可以选前1,2,3...n个数的和,每个数的价值为本身的数值,代价为1//于是每个栈进行前缀和处理之后都可以看作一个组,从这个组中选择一个物品//转换为分组背包问题int maxValueOfCoins(vector<vector<int>>& piles, int k) {int n = piles.size();vector<vector<int>>w(n + 1);vector<vector<int>>v(n + 1);for (int i = 0; i < n; ++i) {int s = 0;for (int j = 0; j < piles[i].size(); ++j) {s += piles[i][j];v[i].push_back(s);w[i].push_back(j + 1);}}vector<int>dp(k + 1, 0);for (int i = 0; i < n; ++i) {for (int j = k; j >= 0; --j) {for (int x = 0; x < w[i].size(); ++x) {if (j >= w[i][x]) dp[j] = max(dp[j], dp[j - w[i][x]] + v[i][x]);}}}return dp[k];}
};int main() {return 0;
}

http://www.xdnf.cn/news/1436365.html

相关文章:

  • 【学Python自动化】 8. Python 错误和异常学习笔记
  • 2025年工科生职业发展证书选择与分析
  • 【模型学习】LoRA的原理,及deepseek-vl2下LoRA实现
  • 力扣242:有效的字母异位词
  • JetBrains 2025 全家桶 11合1 Windows直装(含 IDEA PyCharm、WebStorm、DataSpell、DataGrip等
  • C++类和对象(中)- 默认成员函数
  • 什么是数据库管理系统(DBMS)?RDBMS和NoSQL又是什么?
  • 第 2 讲:Kafka Topic 与 Partition 基础
  • Qwen3-Embedding-0.6B 模型结构
  • Go结构体详解:核心概念与实战技巧
  • Redis-底层数据结构篇
  • MySQL-表的约束(上)
  • 开发中使用——鸿蒙本地存储之收藏功能
  • LLM 能不能发展为 AGI?
  • 开源模型应用落地-模型上下文协议(MCP)-构建AI智能体的“万能插座”-“mcp-use”高级用法(十三)
  • 3.2-C++基础组件
  • 重新审视信任基石:公网IP证书对网络安全生态的影响
  • 【Go语言入门教程】 Go语言的起源与技术特点:从诞生到现代编程利器(一)
  • Cursor 教我学 Python
  • 英伟达Jetson Orin NX-YOLOv8s目标检测模型耗时分析
  • 深度集成Dify API:企业级RAG知识库管理平台解决方案
  • ts,js文件中使用 h函数渲染组件
  • 美国服务器连接速度变慢时应该着重做哪些检查?
  • 双Token实战:从无感刷新到安全防护,完整流程+代码解析
  • PostgreSQL(1) FETCH用法
  • 【MySQL体系结构详解:一条SQL查询的旅程】
  • 《一篇拿下!C++:类和对象(中)构造函数与析构函数》
  • Java 21 虚拟线程 + 分布式调度深度实战:从原理到落地,大促日志同步效率提升 367%
  • 基于SpringBoot的校园资料分享平台
  • Mysql数据库基础(上)