模板 分組揹包

2022-04-30 23:54:12 字數 1192 閱讀 4759

哇竟然把動態規劃寫進了模板

分組揹包 就是物品帶組別的 乙個組的不能重複選之類的

題目背景

直達通天路·小a歷險記第二篇

題目描述

自01揹包問世之後,小a對此深感興趣。一天,小a去遠遊,卻發現他的揹包不同於01揹包,他的物品大致可分為k組,每組中的物品相互衝突,現在,他想知道最大的利用價值是多少。

輸入輸出格式

輸入格式:

兩個數m,n,表示一共有n件物品,總重量為m

接下來n行,每行3個數ai,bi,ci,表示物品的重量,利用價值,所屬組數

輸出格式:

乙個數,最大的利用價值

輸入輸出樣例

輸入樣例:

45 3

10 10 1

10 5 1

50 400 2

輸出樣例:

10說明

1<=m<=1000 1<=n<=1000 組數t<=100

#include

#include

#include

using

namespace

std;

#define in = read()

typedef

long

long ll;

const ll size = 1000 + 10;

ll n,m;

ll a[size],b[size],c[size][size];

ll cc,tm;

ll f[size];

inline ll read()

while(isdigit(ch))

return num*f;

}int main()

for(ll i=1;i<=tm;i++)

for(ll j=m;j>0;j--)

for(int k=1;k<=c[i][0];k++)

if(j >= a[c[i][k]])

f[j] = max(f[j],f[j - a[c[i][k]]] + b[c[i][k]]);

printf("%d",f[m]);

}//coyg

通天之分組揹包 分組揹包

本人水平有限,題解不到為處,請多多諒解 本蒟蒻謝謝大家 題目 傳送門 分組揹包的模板 偽 1 for int i 1 i 組數 i 6 7 直接套模板即可。code 1 include2 pragma gcc optimize 3 3const int n 1e5 10 4 using namesp...

混合揹包 分組揹包

啥是混合揹包呢,就是包含01揹包,完全揹包,多重揹包。有n件物品,揹包承重最大為m,w i 代表重量,v i 代表價值,s i 代表種類。s i 1,可用1次,s i 0,可用無限次,s i 0,可用s i 次.解法 見 const int maxn 1e4 5 int n,m,dp m 1 w n...

揹包問題克星 分組揹包

有n件物品,告訴你這n件物品的重量以及價值,將這些物品劃分為k組,每組中的物品互相衝突,最多選一件,求解將哪些物品裝入揹包可使這些物品的費用綜合不超過揹包的容量,且價值總和最大。演算法 首先判斷乙個分組當中的一件物品,同01揹包一樣,此物品存在兩種狀態,取與不取,若取此物品,則繼續判斷下一組的第一件...