题目:
代码:
#include<iostream>
using namespace std;
int dp[1001];
int m,n,w,c;//m为背包容量,n为物体数量,w为物品的重量,c为物品的价值
int main(){
scanf("%d %d",&m,&n);//输入
for(int i=1;i<=n;i++){//遍历n件物品
scanf("%d %d",&w,&c);//输入
for(int j=w;j<=m;j++){//顺序遍历背包:可以重复放相同物品
dp[j]=max(dp[j],dp[j-w]+c);//寻找最大值
}
}
printf("max=%d",dp[m]);//输出
return 0;
}