題意:
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...