01背包基本思路是动态规划,具体不加分析,先展出代码:
#include <iostream>
using namespace std;
int f[110][11000], v[110], w[110], m, n;//vi为物品体积,wi为物品价值,m为背包可容纳总体积,n为背包可容纳物品总数量
int main()
{
cin >> m >> n;
for (int i = 1; i <= n; i++)
cin >> v[i] >> w[i];
for (int i = 1; i <= n; i++)
{
for(int j=0;j<=m;j++)
f[i][j]=f[i-1][j];
for(int j=v[i];j<=m;j++)
f[i][j]=max(f[i][j],f[i-1][j-v[i]]+w[i]);
}
cout << f[n][m] << endl;
return 0;
}