代碼隨想錄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.pswp.cn/diannao/13482.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/13482.shtml
英文地址,請注明出處:http://en.pswp.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;即發展具身智能。 為了推…