hdu 2191 珍惜現在,感恩生活(多重揹包)

2022-09-02 16:33:18 字數 462 閱讀 1816

題意:

有n元經費,m種大公尺,每種大公尺有單袋**p元,單袋重量h,以及對應袋數c。

問最多可以買多重的大公尺。

思路:經典多重揹包,用二進位制的方法。

看****:

struct

node

obj[

105];

int dp[105

];int

n,m;

void multiplepack(int cost,int value,int

amount)

int k=1

;

while(krep2(i,n,amount*cost) dp[i]=max( dp[i],dp[i-amount*cost]+amount*value );

}int

main()

cout

}return0;

}

HDU 2191 珍惜現在,感恩生活

傳送門 多重揹包。一道帶有歷史的題啊,沉重的回憶。多重揹包的處理關鍵就是將每種物品的可取個數二進位製化,比如一種物品最多取7件,那麼就可以轉化為3件物品 其中每件物品相當於1,2,4件單位物品 這樣包含了取原先物品的任何一種情況 0 7件 並且在求解效率上優於轉化為7件相同物品 本質是從o n 到o...

珍惜現在,感恩生活(多重揹包)

多重揹包問題,將每種物品的個數進行拆分,轉化成01揹包問題 include include include using namespace std int main int argc,char ar int cnt 1 拆分後物品數量 cin bag m for int i 0 i m i w cn...

珍惜現在,感恩生活 完全揹包

採購一些糧食,現在假設你一共有資金n元,而市場有m種大公尺,每種大公尺都是袋裝產品,其 不等,並且只能整袋購買。請問 你用有限的資金最多能採購多少公斤糧食呢?input 輸入資料首先包含乙個正整數c,表示有c組測試用例,每組測試用例的第一行是兩個整數n和m 1 n 100,1 m 100 分別表示經...