基本分組揹包
有n件物品和一個容量為v的揹包。第i件物品的費用是c[i],價值是w[i]。這些物品被劃分為幾組,每組中的物品互相沖突,最多選一件。求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大.
意思是每組物品有幾種決策:是選擇本組的某一件,還是一件都不選。設f[k][v]表示前k組物品花費費用v能取得的最大價值,則有:
f[k][v]=max{f[k-1][v],f[k-1][v-c[i]]+w[i]}//i是列舉第k組中的物品
基本程式碼:
for(int k=1;k<=n;k++) for(int j=v;j>=0;j--)//列舉錢 for(int i=a[k][1];i<=gs[k];i++) //列舉第k組中的物品 f[v]=max(f[v],f[v-c[a[k][i]]]+w[a[k][i]]);
ps:
列舉物品的迴圈必須放在內層,這樣才能保證每一組內的物品最多隻有一個會被新增到揹包中。
相關推薦
基本分組揹包
有n件物品和一個容量為v的揹包。第i件物品的費用是c[i],價值是w[i]。這些物品被劃分為幾組,每組中的物品互相沖突,最多選一件。求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大. 意思是每組物品有幾種決策:是選擇本組的某一件,還是一件都不選。
【題解】洛谷P1273 有線電視網(樹上分組揹包)
次元傳送門:洛谷P1273 思路 一開始想的是普通樹形DP 但是好像實現不大好 觀摩了一下題解 是樹上分組揹包 設f[i][j]為以i為根的子樹中取j個客戶得到的總價值 我們可以以i為根有j組 在每一組中分別又取1個,2個,3個......n個客戶 化為揹包思想即 j為一共有j組 揹包容量為每
轉化為分組揹包 zoj 3769
題目連結:https://vjudge.net/problem/ZOJ-3769 題意:現在你要去打怪,你有13種裝備,每件裝備會有傷害和防禦兩種屬性,一般來說,每種裝備只可以裝備一件,但是特別的,戒指(Finger)你可以同時裝備兩個,左右手各一個,然後對於“Two-Handed”類的裝備,如果你裝備這種
「NOIP2006」「LuoguP1064」 金明的預算方案(分組揹包
題目描述 金明今天很開心,家裡購置的新房就要領鑰匙了,新房裡有一間金明自己專用的很寬敞的房間。更讓他高興的是,媽媽昨天對他說:“你的房間需要購買哪些物品,怎麼佈置,你說了算,只要不超過NNN元錢就行”。今天一早,金明就開始做預算了,他把想買的物品分為兩類:主件與附件,附件是從屬於某個主件的,下表就是
POJ - 1947 Rebuilding Roads 樹形dp+分組揹包
The cows have reconstructed Farmer John's farm, with its N barns (1 <= N <= 150, number 1..N) after the terrible earthquake last May. The cows d
p1277 競賽真理(分組揹包)
題目 描述 Description 小甜甜在經歷了無數次學科競賽的失敗以後,得到了一個真理:做一題就要對一題!但是要完全正確地做對一題是要花很多時間(包括除錯時間),而競賽的時間有限。所以開始做題之前最好先認真審題,估計一下每一題如果要完全正確地做出來所需要的時間,然後選擇一些有把
ACboy needs your help(分組揹包)
ACboy needs your help Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8
【分組揹包問題 (HDU 3535 )】
用到至少選擇一個,所以沒有空間優化 分組揹包問題: 常見的三種分組問題: 分成K組: 1、每組最多隻能取一件物品 一維陣列偽碼: for 0 to K 對每一組進行 for W to 0 對每一個代價進行判斷 ///1 &nbs
分組揹包【DP】
> Description 有N件物品和一個容量為V的揹包。第i件物品的費用是c[i],價值是w[i]。這些物品被劃分為若干組,每組中的物品互相沖突,最多選一件。求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。 > Input 第一行:三個整
[POJ1155] [Croatia2002FinalExam] TELE [樹形dp][分組揹包]
*本題std\frak{std}std複雜度Θ(n3)\frak{\Theta(n^3)}Θ(n3)卡過 解法如題。簡單樹形dp。 #include<cstdio> #include<iostream> #include<algo
ACboy needs your help (分組揹包)
ACboy has N courses this term, and he plans to spend at most M days on study.Of course,the profit he will gain from different course depending on the
【動態規劃】分組揹包 (ssl 2291)
分 組 背 包
Codeforces Round #383 (Div. 2)D-(並查集&分組揹包)|(搜尋&01揹包)
傳送門 分組揹包模板題。 用並查集搞一搞一齊的關係就好。 然後就是分組揹包的模板了,注意,在分組的時候,把i組所有和加起來 這一個虛擬的物品分到 i組裡,而不能獨立分組,不然會造成某一個模特
codeforces 946 D Timetable(預處理+分組揹包)
思路:先預處理出每天去掉x節課能少去學校的時間,然後就變成了n組每組挑一個,容量大小為K的分組揹包了。#include <cstdio> #include <cstdlib> #
洛谷P1757 通天之分組揹包
題目背景 直達通天路·小A歷險記第二篇 題目描述 自01揹包問世之後,小A對此深感興趣。一天,小A去遠遊,卻發現他的揹包不同於01揹包,他的物品大致可分為k組,每組中的物品相互衝突,現在,他想知道最大的利用價值是多少。 輸入輸出格式 輸入格式: 兩個數m,n,表
揹包問題(分組揹包)
Just to remind, girls in Arpa's land are really nice. Mehrdad wants to invite some Hoses to the palace for a dancing party. Each Hos has some weight wi
01揹包、完全揹包、多重揹包、分組揹包
參考連結: 各種揹包的描述: 01揹包(ZeroOnePack): 有N件物品和一個容量為V的揹包。(每種物品均只有一件)第i件物品的費用是c[i],價值是w[i]。求解將哪些物品裝入揹包可使價值總和最大。 完全揹包(CompletePack): 有N種
分組揹包及樹上分組揹包
【人生相關】好睏啊QAQ 小夥伴們明天都去APIO了 當初腦殘沒報名= = 蠻後悔的= = 但想想2800rmb 也就還好了 美好的一天從一道樹形dp開始 昨天看了下以前寫的分組揹包 樹形dp 分組揹包是說有n組物品 每個組別只能選一個 體積限制V 的最大
動態規劃-06分組揹包
本文主要介紹一下“分組揹包”,分組揹包,即一開始選取的物品以及分成幾個組,在選取時,可以從一個分組中選取一件物品或者一件物品也不選取,以此到達最大價值的選取目的。其方程也可以寫成類似於“01揹包”的方程,如下:c[k][j] = max(c[k-1][j], c[k-1][j