
sloution
0,1背包模型,选和不选两种情况

压缩前
cin >> n >> m;
_for(i, 1, n+1) cin >> a[i];
_for(i,0,n+1)f[i][0] = 1;
_for(i,1,n+1){
_for(j,1,m+1){
f[i][j] += f[i - 1][j];
if(j>=a[i])
f[i][j] += f[i - 1][j - a[i]];
}
}
压缩后
cin >> n >> m;
_for(i, 1, n + 1) cin >> a[i];
f[0] = 1;
_for(i, 1, n+1)
{
for_(j, m, a[i])
{
f[j] += f[j - a[i]];
}
}
cout << f[m] << endl;
博客内容介绍了如何使用动态规划方法解决经典的01背包问题,通过代码压缩前后对比,展示了简洁高效的实现方式,适用于优化内存使用和提高计算速度。
770

被折叠的 条评论
为什么被折叠?



