marsha and bill own a collection of marbles.
感覺自己根本想不到。。。我就知道乙個多重揹包就這麼寫了。。沒有考慮這麼多,原來是會溢位的。。。
#include#include#define n 100010
int dp[n],vect;
int max(int a,int b)
void zeroonepack(int use,int weight)//(01揹包)
void complexepack(int use,int weight)//完全揹包
void miltpack(int use,int weight,int n)//n為當前物品的數量(多重揹包)
zeroonepack(n*use,n*weight);//剩下作為一種
}}int main()
if(vect==0)break;
if(vect%2!=0)
printf("collection #%d:\ncan't be divided.\n\n",++c);
else
}}
多重揹包二進位制優化
多重揹包二進位制優化 將價值數量相同的物品分成1,2,4,8.因為100以內任何數都可以由幾個2的n次方數組成。所以,有遍歷沒乙個數變為遍歷每乙個2的n次方數。例題 有n種物品,每種物品的數量為c1,c2.cn。從中任選若干件放在容量為w的揹包裡,每種物品的體積為w1,w2.wn wi為整數 與之相...
多重揹包(二進位制優化)
馬上就要輕院校賽了,沒時間了,下面是網上找的多重揹包,感覺很好 void zeroonepack int cost,int weight,int n void completepack int cost,int weight,int n void multipack int c,int w,int ...
多重揹包二進位制優化
時間長不寫 感覺變菜了。整體優化思路和快速冪很相近 如果第i個物品有num i 個,花費是 c i 價值是 v i 那麼我們可以把它拆分成數個物品。比如某個物品數量是14 花費是cost 價值是value 1 2 4 7 就可以把14個相同物品看成 4 個不同的物品,物品 數量花費 價值第乙個 11...