思路:其實就是多重揹包的應用,只是這裡價值和重量是相等的,因此最後計數是要計價值和重量相等的個數;
1 #include2 #include3const
int n=100010;4
using
namespace
std;
5int
n,m;67
struct
nodenode[n/100
];11
intdp[n];
1213
//完全揹包
14void completepack(int
value)18}
1920
//01揹包
21void zeroonepack(int
value)25}
2627
//多重揹包
28void multiplepack(int value,int
number)
34int k=1;35
while(k
40 zeroonepack(number*value);41}
4243
intmain()
49for(int i=0;i)
52 memset(dp,0,sizeof
(dp));
53for(int i=0;i)
56int count=0;57
for(int i=1;i<=m;i++)
60 printf("
%d\n
",count);61}
62return0;
63 }
hdu2844 多重揹包
讀題能力還是不行,英文水平不夠,只能靠翻譯 華沙人用硬幣。他們有價值a1 a2 a3的硬幣 一枚銀幣。一天,希比克斯開啟錢包,發現裡面有一些硬幣。他決定在附近的一家商店買一塊非常好的手錶。他想支付確切的 不找零 他知道 不會超過m,但他不知道手錶的確切 你要寫乙個程式,它讀取n,m,a1,a2,a3...
hdu 2844 多重揹包
真爽啊 打完一把絕對carry的亞索 來做這題 一發ac touch me 這題 反正資料很大 不用二進位制拆分 肯定tle的 反正 二進位制拆分 很簡單的啊 不會的 現在看我 學下就好了。1 include 2 include 3 using namespace std 45 const int ...
入門多重揹包 HDU2844
題目鏈結 給你若干種面值的硬幣,每種硬幣有多個,給你乙個數字m,問你能用給你的硬幣組合出和為1 m之間的幾種情況,例如1個兩元硬幣 2個一元硬幣 m 3時 就能組合出來1 2 3 答案就是三 m 4時,答案就是4 m 5時答案還是4。難得我解釋了一次題意,hh 如果會01揹包與完全揹包,多重揹包其實...