HDU2844 揹包問題(二進位制優化)

2021-07-26 13:47:30 字數 570 閱讀 4427

題意:

n,m給出a1,a2,a3...an;c1,c2,c3...cn;

給出硬幣的價值和個數,問在1-m中間能構造出多少個組合

思路:n種物品的價值,n種物品的個數;

一種物品能組成多種物品的0/1揹包

#includeusing namespace std;

const int n=1e2+10;

const int m=100000+10;

int n,m;

int val[n],num[n];

bool dp[m];

void oneorzero(int v)

void complete(int v)

int main()

v=val[i]*num[i];

oneorzero(v);}}

int ans=0;

for(int i=1;i<=m;i++)

if(dp[i])

ans++;

printf("%d\n",ans);

}return 0;

}

HDU2844 揹包問題(二進位制優化)

題意 n,m給出a1,a2,a3.an c1,c2,c3.cn 給出硬幣的價值和個數,問在1 m中間能構造出多少個組合 思路 n種物品的價值,n種物品的個數 一種物品能組成多種物品的0 1揹包 includeusing namespace std const int n 1e2 10 const i...

hdu2844 不完全揹包 二進位制壓縮

題意 告訴你n種硬幣的面值和數量,可以在1 m中合成出多少中 題解 幾乎所有部落格都是說二進位制方式解決,但是很少有人看得懂 因為不知道二進位制壓縮在這裡的意義 二進位制壓縮在這裡你只要抓住 1 2 4 8 16 32 2 n 這些數字可以合成 1到2 n 1 1中任何數字,也就是說,在0的基礎上用...

HDU 2844 Coins 揹包 二進位制拆分

題意 有n n 100 枚硬幣面值為a1,a2,an,數量分別為c1,c2,cn,求能組成多少種小於m的數額 m 100000 思路 不能暴力,對於ai ci m的情況,直接完全揹包。剩下的二進位制拆分ci,將ci 拆分為 20 21 2k 1 ci 2k 1 1 對於每一項進行零一揹包即可。inc...