题解
2023-07-08 15:07:29
发布于:上海
63阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
#define MEM(a) memset(a,0,sizeof(a));
#define inf 0x3f3f3f3f
#define F (100000007)
#define MAXN (100+5)
typedef long long ll;
struct node{
int bb;
int zl;
int jz;
};
node arr[10005];
int f[2005];
int main(){
int M,N;
cin>>M>>N;
int v,w,s;
int flag=0;
for(int i=1;i<=N;i++){
cin>>v>>w>>s;
if(s==0){
for(int j=v;j<=M;j++){
f[j]=max(f[j],f[j-v]+w);
}
}
else{
for(int k=1;k<=s;k++){
for(int j=M;j>=v;j--){
f[j]=max(f[j],f[j-v]+w);
}
}
}
}
cout<<f[M]<<endl;
return 0;
}
这里空空如也
有帮助,赞一个