題意大概:小錢要買價值為t 的物品 ,他有n種不同數量的硬幣,求在此次交易所需花費數量最少的硬幣數(付款+售貨員找回的);
分析:對顧客用多重揹包,對售貨員用完全揹包。
此時揹包中的容量為n,價值為1,花費為硬幣的價值。
因為輸出-1時,也要輸出case ,哇了好多=_=!!!
#include
#include
#include
using
namespace
std;
#define n 20000
#define inf 0xfffffff
int dp[n],v[105],c[105];
void zeropack(int v,int w,int m)
void completepack(int v,int w,int m)
void multiply(int v,int *w,int n,int m)
zeropack(c[i]*v,c[i]*w[i],m);}}
}int main()
return
0;}
HDU 3591 多重揹包
題目 the trouble of xiaoqian 題意 有n種coin,給出每種coin的價值vi,和小強擁有的個數ci,小強去購物,要付m元,求小強和店員間交換貨幣時的最小個數貨幣,即小強付出coin個數加上店員找回coin個數。解題思路 揹包題,先用二進位制思想把coin合併成和種不同價值的...
HDU 3732(01揹包轉多重揹包)
這道題很有意思,n,c的資料量達到10000,如果用普通的01揹包來做絕對會超時,注意到v和c只有0 10的範圍,這說明有大量的v,c是重複的,相同的v,c的單詞是等價的,這樣就可以轉化為多重揹包來做。不過普通的多重揹包又可能會超時,於是我們採取二進位制優化的方式來優化成01揹包問題。從01揹包到多...
HDU 1059 多重揹包
個人覺得,這個可以作為多重揹包的模板使用,其中包括了簡單的0 1揹包和完全揹包,分清楚它們三個的區別。include include define n 60005 define max a,b a b?a b int c n void complete int cost,int weight,int...