HDU 3591 多重揹包

2021-07-09 21:33:41 字數 581 閱讀 5716

題意大概:小錢要買價值為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...