題意:
有n元經費,m種大公尺,每種大公尺有單袋**p元,單袋重量h,以及對應袋數c。
問最多可以買多重的大公尺。
思路:經典多重揹包,用二進位制的方法。
看****:
structnode
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 分別表示經...