代码随想录Day41(01背包问题):卡玛网46、Leetcode416

卡玛网46:

问题描述:

小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等等,它们各自占据不同的空间,并且具有不同的价值。 

小明的行李空间为 N,问小明应该如何抉择,才能携带最大价值的研究材料,每种研究材料只能选择一次,并且只有选与不选两种选择,不能进行切割。

代码及注释解析:

#include<iostream>using namespace std;
//m个物品,背包容量最大为n
int m, n;
const int MAX_N = 5000;//滚动数组优化01背包问题
int dp[MAX_N + 1];//weight[i]代表第i个物品的重量
int weight[MAX_N];
//value[i]代表第i个物品的价值
int value[MAX_N];int main() {cin >> m >> n;for (int i = 0; i < m; i++) cin >> weight[i];for (int i = 0; i < m; i++) cin >> value[i];//外循环代表,对前i个物品进行放入找最优解for (int i = 0; i < m; i++) {//从后向前遍历,为了不让更改的数据影响到当前层求解for (int j = n; j >= weight[i]; j--) {dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);}}cout << dp[n] << endl;return 0;
}

Leetcode416:

问题描述:

给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。

示例 1:

输入:nums = [1,5,11,5]
输出:true
解释:数组可以分割成 [1, 5, 5] 和 [11] 。

示例 2:

输入:nums = [1,2,3,5]
输出:false
解释:数组不能分割成两个元素和相等的子集。

代码及注释解析:

class Solution {
public:int dp[10005];bool canPartition(vector<int>& nums) {int sum = 0;for (int i = 0; i < nums.size(); i++) {sum += nums[i];}//总和为奇数不可能满足题目要求if (sum % 2 == 1)return false;//找子集和为总和的一半值sum = sum / 2;//滚动数组求解for (int i = 0; i < nums.size(); i++) {for (int j = sum; j >= nums[i]; j--) {dp[j] = max(dp[j], dp[j - nums[i]] + nums[i]);}}return dp[sum] == sum;}
};

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

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

相关文章

HCIP-Datacom(H12-821)题库补充(5月16日)

最新 HCIP-Datacom&#xff08;H12-821&#xff09;完整题库请扫描上方二维码访问&#xff0c;持续更新中。 以下关于配置防火墙安全优先级的描述&#xff0c;错误的是哪一项&#xff1f; A&#xff1a;不新建与默认安全区域同名的安全区域 B&#xff1a;同一系统中&#xff0c…

「服务器」Nginx详解

本文主要介绍Nginx的原理和服务器部署Node.js项目。 一、Nginx原理 Nginx是一个高性能的HTTP服务器和反向代理服务器&#xff0c;它以高稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。以下是对Nginx的一些详解&#xff1a; 1. Nginx是什么&#xff1f; Nginx&#x…

镊子蜡烛如何设置止盈止损?Anzo Capital昂首资本盈利收场

通过上一篇文章各位聪明的投资者&#xff0c;都已经知道了什么是镊子蜡烛图以及如何抓住反转进行交易&#xff0c;同时也有很多投资者不知道如何设置止盈止损&#xff1f;今天Anzo Capital昂首资本就和各位投资者一起探讨如何盈利收场。 看跌的镊子模式如何交易&#xff1f;首…

【数据结构】树(Tree)

✨✨✨专栏&#xff1a;数据结构 &#x1f9d1;‍&#x1f393;个人主页&#xff1a;SWsunlight 目录 一、基本概念&#xff1a; 1、定义&#xff1a; ​编辑 ​编辑 2、树的成分&#xff1a; 3、树的性质&#xff1a; 二、存储方式&#xff1a; ​编辑 双亲表示法…

C++-float与double

float和double是两种不同的数据类型&#xff0c;用于存储浮点数&#xff08;小数&#xff09;。 1.精度&#xff1a; float是单精度浮点数&#xff0c;占用4个字节&#xff0c;通常精度为6-9位小数。 double是双精度浮点数&#xff0c;占用8个字节&#xff0c;通常精度为15-…

Open3D 点云多平面探测(Python)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 Open3D为我们提供了一种点云多平面探测的算法,该算法使用基于鲁棒统计的方法进行平面补丁检测。该算法具体过程:首先将点云细分为更小的块(使用八叉树),然后尝试为每个块匹配一个平面。如果平面通过了鲁棒平面性…

【C语言每日题解】用函数来模拟实现strlen()、strcpy()、strcmp()、strcat()

&#x1f970;欢迎关注 轻松拿捏C语言系列&#xff0c;来和 小哇 一起进步&#xff01;✊ 学习了函数后&#xff0c;老师让我们用函数来实现上面这四个字符串函数。 我们首先来了解一下这四个字符串函数&#xff1a; 1.strlen函数 用于获取字符串长度&#xff08;不包括末尾…

【源码】相亲交友系统全新UI/情感测试/婚庆中介/交友系统

【交友】相亲交友系统全新UI/情感测试/婚庆中介/交友系统 带商城&#xff0c;情感测试。 https://www.52codes.cc/codes/qt

从开发板导出根文件系统并修改(Ubuntu)

前面提到过基于ubuntu-base去构建根文件系统基于Ubuntu-base构建根文件系统-CSDN博客&#xff0c;但是有时候我们并不需要重头开始&#xff0c;可以基于现有的根文件系统做调整。又或者我们直接在出厂的系统上去搭建好自己的运行环境并且编译出自己想要的程序&#xff0c;现在要…

医学科技查新中对查新点的撰写方法!附案例讲解!

我国的科技查新工作最早是从医学领域开始的&#xff0c;始于1985年中国科学院医学情报所&#xff0c;后来逐步发展到工、农等其 他各个领域。医学科技查新包括立项查新和成果查新两个部分&#xff0c;其中医学立项查新&#xff0c;它是指在医学科研项目申报开题之前&#xff0c…

Linux上diff命令

diff 是一个 Linux 下的命令行工具&#xff0c;用于比较文本文件或目录之间的差异。它会逐行比较两个文件的内容&#xff0c;并输出它们之间的不同之处。diff 命令通常用于查找文件间的差异&#xff0c;特别是用于比较文件的修改&#xff0c;合并文件或者检查文件的一致性。 基…

按值传递还是按引用传递

使用std::ref和std::cref 从 C11 开始&#xff0c;可以让调用者自行决定向函数模板传递参数的方式。如果模板参数被声明成 按值传递的&#xff0c;调用者可以使用定义在头文件<functional>中的 std::ref()和std::cref()将参数按引用传递给函数模板&#xff0c;比如&#…

上海初中生古诗文大会倒计时4个月:单选题真题示例和独家解析

现在距离2024年初中生古诗文大会还有4个多月时间&#xff0c;备考要趁早&#xff0c;因为知识点还是相对比较多的。这些知识点对于初中语文的学习也是很有帮助的。 今天我们继续来看10道选择题真题和详细解析&#xff0c;以下题目截取自我独家制作的在线真题集&#xff0c;都是…

取名时,要考虑生肖的影响

亲爱的宝宝们&#xff0c;又是一年五一小长假&#xff0c;峰民想大家都在休假吧&#xff01;真幸福&#xff01;峰民每天都在工作&#xff0c;几乎没有休过假&#xff0c;因为每天全国各地找我们取名改名客户是络绎不绝&#xff0c;峰民虽然也很辛劳&#xff0c;但也很有成就感…

Redis:hash数据类型

文章目录 hash常用命令hsethgethexistshdelhkeyshvalshmget 压缩hash和string 本篇总结的是&#xff0c;在Redis中的哈希数据类型 hash 在Redis内部本身&#xff0c;其实就是一种键值对的结构&#xff0c;而在key-value的value本身&#xff0c;其实也可以是一种哈希结构 而在…

【c++算法篇】滑动窗口

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;算法笔记仓 目录 1.长度最小的子数组2.无重复字符的最长子串3.最大连续1的个数 III4.将 x 减到 0 的最小操作数5.水果成篮6.找到字符串中所有字母异位词7.串联所有单词的子串8.最小覆盖子串 滑动窗…

李宏毅-Self-attention机制详解

原视频链接&#xff1a;attention 一. 基本问题分析 1. 模型的input 无论是预测视频观看人数还是图像处理&#xff0c;输入都可以看作是一个向量&#xff0c;输出是一个数值或类别。然而&#xff0c;若输入是一系列向量&#xff0c;长度可能会不同&#xff0c;例如把句子里的…

C 深入指针(4)

目录 一、字符指针变量 1 初始化 2 与字符串数组的区别 二、数组指针变量 1 初始化 2 二维数组传参本质 三、函数指针变量 1 初始化 2 用法 四、typedef关键字 五、函数指针数组 一、字符指针变量 1 初始化 //VS2022 x64 #include <stdio.h> int main() {…

机器人非线性阻抗控制系统

机器人非线性控制系统本质上是一个复杂的控制系统&#xff0c;其状态变量和输出变量相对于输入变量的运动特性不能用线性关系来描述。这种系统的形成基于两类原因&#xff1a;一是被控系统中包含有不能忽略的非线性因素&#xff0c;二是为提高控制性能或简化控制系统结构而人为…

人形机器人场景应用全解析,2024睿抗 AI ROBOT创新挑战赛火热报名中!

人工智能&#xff08;AI&#xff09;已成为推动科技革命和产业变革的关键力量。随着大模型等AIGC技术的迅猛发展&#xff0c;AI正深刻改变我们的生活并重新定义生产方式。越来越多人期望将AI技术从纯粹的思维和计算扩展到与物理世界的互动中&#xff0c;即发展具身智能。 为了推…