hdu 2844 多重揹包)

2021-09-06 08:32:25 字數 850 閱讀 2308

思路:其實就是多重揹包的應用,只是這裡價值和重量是相等的,因此最後計數是要計價值和重量相等的個數;

1 #include2 #include3

const

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揹包與完全揹包,多重揹包其實...