hdu3535 01 分組揹包

2021-06-13 15:13:32 字數 615 閱讀 8932

hdu3535

稍微能理解一些了,至少取乙個的分組揹包。

寫hdu3033的那題 網上沒有解釋好一點的題解 ,這題題解比較多

#include#include#includeusing namespace std;

int n,t,m,s,w,v;

int dp[110],dp[110];

int main()

{ int i,j,k;

while(scanf("%d%d",&n,&t)!=eof)

{ memset(dp,-1,sizeof(dp)); dp[0]=0;

for(i=1;i<=n;i++)

{ scanf("%d%d",&m,&s);

if(s==0) //至少1個

{int dp[110]; memset(dp,-1,sizeof(dp));

for(j=1;j<=m;j++){

scanf("%d%d",&w,&v);

for(k=t;k>=w;k--){

if(dp[k-w]!=-1&&dp[k]=w;j--)

if(dp[j-w]!=-1&&dp[j]=w;k--) if(dp[k-w]!=-1&&dp[k]

hdu 1712 分組揹包

分組的揹包問題 問題 有n件物品和乙個容量為v的揹包。第i件物品的費用是c i 價值是w i 這些物品被劃分為若干組,每組中的物品互相衝突,最多選一件。求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。演算法 這個問題變成了每組物品有若干種策略 是選擇本組的某一件,還是一件...

hdu 1712 分組揹包)

思路 這是一道簡單的分組揹包,因為每種課可以有多種選擇 花幾天時間在該課上。一旦作出選擇,就不能再選該課,就相當於有多組物品,每組內的物品互相衝突,最多只能選一件。偽碼 for 所有的組k for v v.0 for 所有的i屬於組k f v max 1 include2 const int max...

HDU 1712(分組揹包)

這個寫的不錯 發現問題的起因是hdu 1712,乙個赤裸的分組揹包。所以有必要說一下這個題目。題意 乙個學生用m天的時間複習n門課程,每門課程花費不同的天數,有不同的收穫。問如何安排這m天,使得收穫最大。思路 可以將每一門課看成乙個分組,每門課不同天數的選擇看成是分組的物品 顯然只能有乙個選擇 物品...