完全背包模板

题目:完全背包问题


思路:模板+滚动数组…


代码:

#include
using namespace std;

#define maxm 200
#define maxn 30

int m,n;
int w[maxn+5],c[maxn+5];
int f[maxm+5]= {0};

int main() {
	scanf("%d%d",&m,&n);
	for(int i=1; i<=n; i++) {
		scanf("%d%d",&w[i],&c[i]);
		for(int j=m; j>=0; j--) {
			for(int k=1; j-k*w[i]>=0; k++) {
				f[j]=max(f[j],f[j-k*w[i]]+k*c[i]);
			}
		}
	}
	printf("max=%d\n",f[m]);

	return 0;
}

你可能感兴趣的:(#,动态规划,dp,动态规划,背包,一本通)