分組背包問題學習筆記 AcWing 9. 分組背包問題

原題

有?N�?組物品和一個容量是?V�?的背包。

每組物品有若干個,同一組內的物品最多只能選一個。
每件物品的體積是?vij���,價值是?wij���,其中?i�?是組號,j�?是組內編號。

求解將哪些物品裝入背包,可使物品總體積不超過背包容量,且總價值最大。

輸出最大價值。

輸入格式

第一行有兩個整數?N,V�,�,用空格隔開,分別表示物品組數和背包容量。

接下來有?N�?組數據:

  • 每組數據第一行有一個整數?Si��,表示第?i�?個物品組的物品數量;
  • 每組數據接下來有?Si��?行,每行有兩個整數?vij,wij���,���,用空格隔開,分別表示第?i�?個物品組的第?j�?個物品的體積和價值;
輸出格式

輸出一個整數,表示最大價值。

數據范圍

0<N,V≤1000<�,�≤100
0<Si≤1000<��≤100
0<vij,wij≤1000<���,���≤100

輸入樣例
3 5
2
1 2
2 4
1
3 4
1
4 5
輸出樣例:
8

原題鏈接

傳送門?

代碼

#include<bits/stdc++.h>
using namespace std;const int N=110;int s[N];
int v[N][N],w[N][N];
int f[N];int main()
{int n,m;scanf("%d%d",&n,&m);for(int i=0;i<n;i++){scanf("%d",&s[i]);for(int j=0;j<s[i];j++){scanf("%d%d",&v[i][j],&w[i][j]);}}for(int i=0;i<n;i++){for(int j=m;j>=0;j--){for(int k=0;k<s[i];k++){if(v[i][k]<=j){f[j]=max(f[j],f[j-v[i][k]]+w[i][k]);}}}}printf("%d\n",f[m]);return 0;
}

總結

1.首先是數據范圍比較小,只有100,可以使用N^3時間復雜度的算法通過這道題

2.給定的是n組物品,每一組物品里面有多件物品,一件物品只能選擇一次,本質上還是01背包,選或者不選,兩種情況,所以第二層循環還是從大往小枚舉背包容量

3.每一組里面只能選擇一件物品

4. 更多的理解之后有新的感想再補充

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/164180.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/164180.shtml
英文地址,請注明出處:http://en.pswp.cn/news/164180.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PC8233(CC/CV控制)高耐壓輸入5V/3.4A同步降壓電路內建補償帶恒流恒壓輸出

概述 PC8233&#xff08;替代CX8853&#xff09;是一款同步降壓調節器,輸出電流高達3.4A,操作范圍從8V到32V的寬電源電壓。內部補償要求最低數量現成的標準外部組件。PC8233在CC&#xff08;恒定輸出電流&#xff09;模式或CV&#xff08;恒定輸出電壓&#xff09;模式&#x…

【前端】前端監控?埋點

文章目錄 前端監控分為三個方面前端監控流程異常監控常見的錯誤捕獲方法主要是 try / catch 、window.onerror 和window.addEventListener 等。Promise 錯誤Vue 錯誤React 錯誤 性能監控用戶行為監控常見的埋點方案來源 前端監控分為三個方面 異常監控&#xff08;監控前端頁面…

基于element-ui后臺模板,日常嘮嗑

后面會補充github地址 文章目錄 目錄 文章目錄 案例說明 1.引入庫 2.創建布局組件 3.創建布局組件 4.菜單效果展示 5.創建頂部組件 5.創建頂部面包屑組件 6.創建內容區域組件 7.效果總覽 7.布丁&#xff08;實現一些小細節&#xff09; 前言一、pandas是什么&#xff1f;二、使…

CentOS7中升級OpenSSL詳細教程

文章目錄 一. 引言二. 升級前的準備1.備份現有配置2. 檢查系統版本3. 安裝依賴 三. OpenSSL安裝四. 驗證 一. 引言 OpenSSL: 是用于保護數據安全的重要工具。它能提供加密&#xff0c;解密等多項功能。 然而&#xff0c;隨著技術的發展和新的安全漏洞的出現&#xff0c;使用最…

管理類聯考——英語二——備考 100 句涵蓋所有詞匯

全中 在海里的這個地區&#xff0c;熊貓們喜歡就著蘇打碗豆喝茶。而大洋州的民兵則喜歡經過半島&#xff0c;帶著編劇本的公式上餐廳去。附件的電影院里有額外的歌劇和香蕉&#xff0c;這一時代的斑馬們被外面的天線所吸引。實驗室里的蟹想用它的肋骨去戳四肢象燈炮的小羊。但…

千夢網創:創業,一場游戲一場夢

創業這件事就好比一場養成類游戲&#xff0c;而我們自己就是游戲主角。 這個游戲有一個特殊之處在于&#xff1a;SSS級裝備有穿戴等級設定&#xff0c;就算你氪重金買到了一把神器&#xff0c;自身閱歷不夠也根本無法發揮它的強大威力而只能當個裝飾。 這就要求我們真正沉浸在…

催單開發信怎么寫?外貿人如何寫催單郵件?

年末催單開發信編寫技巧&#xff1f;最有效的催單話術有哪些&#xff1f; 催單開發信成為了企業間日常溝通的重要一環。這些信件不僅有助于促進業務發展&#xff0c;還可加強供應鏈的協調&#xff0c;確保貨物及時送達。蜂郵EDM將介紹如何寫一封出色的催單開發信&#xff0c;以…

ubuntu20.04安裝多版本cuda,切換版本

1. 安裝cuda toolkit: 下載網站 https://developer.nvidia.com/cuda-11.3.0-download-archive 選擇版本&#xff0c;這里選擇11.3 wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run給cuda權限: chmod x…

Linux加強篇001-部署Linux系統

目錄 一、前言 1.1準備工具 1.2安裝配置VM虛擬機 1.3安裝軟件 1.4系統初始化進程 1.5重置root密碼 二、鞏固練習 1&#xff0e;為什么建議讀者在下載系統文件后先進行校驗而不是直接安裝呢&#xff1f; 2&#xff0e;使用虛擬機安裝Linux系統時&#xff0c;為什么要先…

科技與藝術如何交織出“理想之家”?三星電視給出家電行業最優解答

作者 | 曾響鈴 文 | 響鈴說 理想的家&#xff0c;是什么樣子? 關于這個問題&#xff0c;社交媒體上有形形色色的答案。很多人的夢中情屋是原木風、奶油色&#xff0c;點綴著綠意盎然的植物&#xff1b;還有一些人的Dream house是用全屋智能將科技感拉滿&#xff0c;再配上打…

OpenStack云計算平臺-計算服務

目錄 一、計算服務概覽 二、安裝并配置控制節點 1、先決條件 2、安全并配置組件 3、完成安裝 三、安裝和配置計算節點 1、安全并配置組件 2、完成安裝 四、驗證操作 一、計算服務概覽 使用OpenStack計算服務來托管和管理云計算系統。OpenStack計算服務是基礎設施即服務…

2024東北師范大學計算機考研分析

24計算機考研|上岸指南 東北師范大學 信息科學與技術學院位于長春凈月國家高新技術產業開發區&#xff0c;毗鄰風光秀美的凈月潭國家森林公園。 信息科學與技術學院由原“計算機科學與信息技術學院”和“信息與軟件工程學院”于2017年根據學校事業發展需要整合形成。學院設有…

全球三大網絡安全威脅

網絡安全IP數據云 - 免費IP地址查詢 - 全球IP地址定位平臺威脅日益復雜&#xff0c;涵蓋了多個層面&#xff0c;從個人用戶到大型企業&#xff0c;都面臨著不同形式的網絡安全威脅。以下是當前全球范圍內廣泛認可的三大網絡安全威脅&#xff1a; 1. 惡意軟件和病毒攻擊&#x…

【沁恒藍牙mesh】OTA功能詳解

本文基于沁恒CH58X 單片機的OTA功能 一鍵三連&#xff0c;收藏點贊評論 私信可獲取原文 &#x1f4cb; 個人簡介 &#x1f496; 作者簡介&#xff1a;大家好&#xff0c;我是喜歡記錄零碎知識點的小菜鳥。&#x1f60e;&#x1f4dd; 個人主頁&#xff1a;歡迎訪問我的 Ethern…

不可錯過的10個即時通訊軟件開發技巧

歡迎來到本文&#xff0c;作為即時通訊軟件開發領域的專家&#xff0c;我將為您分享十個不容錯過的開發技巧。無論您是新手開發者還是有經驗的專業人士&#xff0c;這些技巧都將幫助您實現卓越的即時通訊軟件。讓我們開始吧&#xff01; 1. 選擇適當的開發平臺 在開始開發之前…

注意:怎么用JMeter操作MySQL數據庫?看完秒懂!

近期用JMeter做接口測試&#xff0c;遇到了一個需要用到數據數據庫的場景&#xff1a;一個關于數據報告的頁面&#xff0c;需要將數據庫里面的數據求和或者取均值之后&#xff0c;展示出來。 如果要斷言的話&#xff0c;需要連接數據庫&#xff0c;通過寫sql語句&#xff0c;將…

jmeter中調用python代碼

1、安裝pyinstaller pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller 2、將py腳本打包 pyinstaller -F venv/get_image/OCR_jmeter_api.py 3、jmeter中添加OS Process Sampler并調用dist下的程序 4、執行jmeter

刪除鏈表的倒數第N個結點

題目&#xff1a; 給你一個鏈表&#xff0c;刪除鏈表的倒數第 n 個結點&#xff0c;并且返回鏈表的頭結點。 示例 1&#xff1a; 輸入&#xff1a;head [1,2,3,4,5], n 2 輸出&#xff1a;[1,2,3,5]示例 2&#xff1a; 輸入&#xff1a;head [1], n 1 輸出&#xff1a;…

機器學習實戰-第5章 Logistic回歸

Logistic 回歸 概述 Logistic 回歸 或者叫邏輯回歸 雖然名字有回歸,但是它是用來做分類的。其主要思想是: 根據現有數據對分類邊界線(Decision Boundary)建立回歸公式,以此進行分類。 須知概念 Sigmoid 函數 回歸 概念 假設現在有一些數據點,我們用一條直線對這些點進行…

淺析基于智能音視頻技術的城市重要場館智能監控系統設計

了解旭帆科技的朋友都知道&#xff0c;旭帆科技一直都樂于和大家分享各類場景的視頻解決方案&#xff0c;今天小編就基于智能音視頻技術的城市重要場館智能監控系統設計和大家探討一下。 基于智能音視頻技術的城市重要場館智能監控系統設計&#xff0c;主要包含以下要素&#x…