完全背包-一維數組

52. 攜帶研究材料(第七期模擬筆試)

題目描述

小明是一位科學家,他需要參加一場重要的國際科學大會,以展示自己的最新研究成果。他需要帶一些研究材料,但是他的行李箱空間有限。這些研究材料包括實驗設備、文獻資料和實驗樣本等等,它們各自占據不同的重量,并且具有不同的價值。

小明的行李箱所能承擔的總重量是有限的,問小明應該如何抉擇,才能攜帶最大價值的研究材料,每種研究材料可以選擇無數次,并且可以重復選擇。

輸入描述

第一行包含兩個整數,n,v,分別表示研究材料的種類和行李所能承擔的總重量?

接下來包含 n 行,每行兩個整數 wi 和 vi,代表第 i 種研究材料的重量和價值

輸出描述

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

輸入示例
4 5
1 2
2 4
3 4
4 5
輸出示例
10
提示信息

第一種材料選擇五次,可以達到最大值。

數據范圍:

1 <= n <= 10000;
1 <= v <= 10000;
1 <= wi, vi <= 10^9.

思路

與0-1背包的區別是,它的物品數量是無限個,因此是一個完全背包問題,對于這種問題,解決方案只是狀態轉移方程有變化,變成了dp[i][j] = max(dp[i - 1][j], dp[i][j - weight[i]] + value[i])

python題解(二維數組)

def knapsack(n, v, weight, value):dp = [[0]*(v+1) for _ in range(n)] #dp表示可以無限次使用物品0-i的前提下,裝滿容量為j的背包可以獲得的最大價值for j in range(weight[0], v+1):dp[0][j] = dp[0][j-weight[0]]+value[0]for i in range(1, n):for j in range(1, v+1):if j < weight[i]:dp[i][j] = dp[i-1][j]else:dp[i][j] = max(dp[i-1][j], dp[i][j-weight[i]]+value[i])return dp[n-1][v]n, v = map(int, input().split())
weight = []
value = []
for _ in range(n):wi, vi = map(int, input().split())weight.append(wi)value.append(vi)
max_value = knapsack(n, v, weight, value)
print(max_value)

python題解(一維數組)

注意:與0-1背包不同,要正向遍歷

def knapsack(n, v, weight, value):dp = [0]*(v+1) #dp表示目前裝滿容量為j的背包可以獲得的最大價值for i in range(0, n):for j in range(weight[i], v+1):dp[j] = max(dp[j], dp[j-weight[i]]+value[i])return dp[v]n, v = map(int, input().split())
weight = []
value = []
for _ in range(n):wi, vi = map(int, input().split())weight.append(wi)value.append(vi)
max_value = knapsack(n, v, weight, value)
print(max_value)

?

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

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

相關文章

景聯文科技:以專業標注賦能AI未來,驅動智能時代的精準躍遷

在人工智能技術重塑全球產業格局的今天&#xff0c;高質量訓練數據已成為驅動算法進化的核心燃料。作為數據智能服務領域的領軍者&#xff0c;景聯文科技深耕數據標注行業多年&#xff0c;以全棧式數據解決方案為核心&#xff0c;構建起覆蓋數據采集、清洗、標注、質檢及算法調…

洛谷B2074 計算星期幾

B2074 計算星期幾 - 洛谷 代碼區&#xff1a; #include<algorithm> #include<iostream> #include<unordered_map> #include<string> using namespace std; int main() {unordered_map<int, string> m { { 1,"Monday" },{2,"Tue…

協同過濾推薦算法+微信小程序的農產品團購推薦平臺(程序+論文+講解+安裝+調試+售后)

感興趣的可以先收藏起來&#xff0c;還有大家在畢設選題&#xff0c;項目以及論文編寫等相關問題都可以給我留言咨詢&#xff0c;我會一一回復&#xff0c;希望幫助更多的人。 系統介紹 在當今時代&#xff0c;科學技術正以令人矚目的速度迅猛進步&#xff0c;經濟社會也隨之…

十大經典排序算法簡介

一 概述 本文對十大經典排序算法做簡要的總結(按常用分類方式排列),包含核心思想、時間/空間復雜度及特點。 二、比較類排序 1. 冒泡排序 (BUBBLE SORT) 思想:重復交換相鄰逆序元素,像氣泡上浮 復雜度: 時間:O(n^2)(最好情況O(n)) 空間:O(1) 特點:簡單但效率低,穩…

[自然語言處理]pytorch概述--什么是張量(Tensor)和基本操作

pytorch概述 PyTorch 是?個開源的深度學習框架&#xff0c;由 Facebook 的??智能研究團隊開發和維護&#xff0c;于2017年在GitHub上開源&#xff0c;在學術界和?業界都得到了?泛應? pytorch能做什么 GPU加速自動求導常用網絡層 pytorch基礎 量的概念 標量&#xf…

Spring統一格式返回

目錄 一&#xff1a;統一結果返回 1&#xff1a;統一結果返回寫法 2&#xff1a;String類型報錯問題 解決方法 二&#xff1a;統一異常返回 統一異常返回寫法 三&#xff1a;總結 同志們&#xff0c;今天咱來講一講統一格式返回啊&#xff0c;也是好久沒有講過統一格式返…

【無標題】四色拓撲模型與宇宙歷史重構的猜想框架

### 四色拓撲模型與宇宙歷史重構的猜想框架 --- #### **一、理論基礎&#xff1a;四色拓撲與時空全息原理的融合** 1. **宇宙背景信息的拓撲編碼** - **大尺度結構網絡**&#xff1a;將星系團映射為四色頂點&#xff0c;纖維狀暗物質結構作為邊&#xff0c;構建宇宙尺度…

藍橋杯 封閉圖形個數

藍橋杯 封閉圖形個數 題目 鏈接 解答 # 數字個數 n int(input()) # 數字 ls input().split() # 統計數字的圈數 o_nums {} for i, x in enumerate(ls):o_num 0for c in x:if int(c) in [0, 4, 6, 9]:o_num 1elif c 8:o_num 2o_nums[i] o_num # 字典根據圓圈數排序 …

基于javaweb的SpringBoot學生在線考試管理系統設計和實現(源碼+文檔+部署講解)

技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論…

國產編輯器EverEdit - 超多樣式設置

1 設置-編輯-樣式 1.1 設置說明 1.1.1 折疊樣式 默認為箭頭&#xff0c;折疊樣式選項如下&#xff1a; 箭頭&#xff1a; 矩形和線條 五邊形 圓形圖標 1.1.2 光標樣式 光標用于指示當前用戶輸入位置&#xff0c;光標樣式選項如下&#xff1a; 默認 纖細 字寬 …

Linux - 線程控制

一、線程概念 1&#xff09;線程地址空間 線程與進程共享相同的虛擬地址空間&#xff0c;因此線程在訪問內存時與進程沒有本質的區別。但線程共享和獨占的內存區域有不同的特點&#xff0c;理解這些特性對于正確使用線程至關重要。 1. 線程地址空間的組成 線程的地址空間是…

通過多線程分別獲取高分辨率和低分辨率的H264碼流

目錄 一.RV1126 VI采集攝像頭數據并同時獲取高分辨率碼流和低分辨率碼流流程 ?編輯 1.1初始化VI模塊&#xff1a; 1.2初始化RGA模塊&#xff1a; 1.3初始化高分辨率VENC編碼器、 低分辨率VENC編碼器&#xff1a; 1.4 VI綁定高分辨率VENC編碼器&#xff0c;VI綁定RGA模塊…

部署RabbitMQ集群詳細教程

部署RabbitMQ集群詳細教程 下面是一份在 Ubuntu 環境下部署 RabbitMQ 集群的詳細步驟說明&#xff0c;涉及主機名設置、Erlang & RabbitMQ 安裝、管理插件啟用、集群通信 Cookie 配置、節點加入集群、鏡像隊列策略設置以及集群驗證等。為了演示方便&#xff0c;以下示例假…

【Linux】之【Bug】VMware 虛擬機開機 一直卡在黑屏左上角下劃線閃爍界面

解決 參考&#xff1a; 解決Ubuntu20.04 開機黑屏光標閃爍進不去系統 Centos根目錄100%解決思路 當前界面 ctrlaltf3-f6 暫時進入終端界面 df -h 查看發現根目錄 磁盤空間已滿 執行命令 查看當前目錄占用內存明細 sudo du -h -x --max-depth1清理無用的大內存文件 或者安裝…

webflux集成langchain4j基礎版

伴隨著大模型應用的興起&#xff0c;webflux逐漸引起關注。為了以java的方式運行AI應用&#xff0c;讓我們一起學習webflux集成langchain4j吧。 1. 項目依賴 首先&#xff0c;你需要在 pom.xml 中添加必要的依賴&#xff1a; <dependencies><!-- Spring WebFlux --…

使用GitLink個人建站服務部署Allure在線測試報告

更多技術文章&#xff0c;訪問軟件測試社區 文章目錄 &#x1f680;前言&#x1f511;開通GitLink個人建站服務1. 前提條件2. 登錄GitLink平臺&#xff08;https://www.gitlink.org.cn/login&#xff09;3. 進入設置>個人建站>我的站點4. 新建站點5. 去倉部進行部署6. 安…

go數組的聲明和初始化

1.數組簡介 數組是可以存放多個同一類型的數據。數組也是一種數據類型&#xff0c;在go中&#xff0c;數組是值類型。數組的長度也是數組類型的一部分&#xff0c;所以[2]int和[3]int屬于不同的數據類型。 2.數組的長度也是類型的一部分 var arr1 [2]intvar arr2 [3]intfmt.P…

四款GIS工具箱軟件解析:滿足企業多樣化空間數據需求

概述 隨著地理信息系統&#xff08;GIS&#xff09;在城市規劃、環境監測、資源管理等領域的廣泛應用&#xff0c;各種GIS工具箱軟件不斷涌現&#xff0c;為用戶提供了強大的數據處理、空間分析和地圖制圖功能。本文將為大家介紹4款GIS工具箱軟件&#xff0c;這些軟件各具特色…

VirtualBox虛擬機安裝Mac OS啟動后的系統設置

VirtualBox虛擬機安裝Mac OS一直沒裝成功&#xff0c;本來想要放棄的&#xff0c;后來想著再試一次&#xff0c;于是在關機的情況&#xff0c;執行那幾句設置&#xff1a; cd "E:\Program Files\Oracle\VirtualBox\" VBoxManage.exe modifyvm "MacOS" --c…

[力扣每日一練]關于所有不同域名的查找

一、題目要求&#xff1a; 表&#xff1a;Emails---------------------- | Column Name | Type | ---------------------- | id | int | | email | varchar | ---------------------- id 是這張表的主鍵&#xff08;有不同值的列&#xff09;。 這張表的…