最基础题解
2024-12-14 16:42:50
发布于:广东
7阅读
0回复
0点赞
最基础题解:
#include<iostream>
using namespace std;
int a,b,w[1005],v[1005],s[1005],dp[1005][1005];
int main(){
    cin>>a>>b;
    for(int i=1;i<=b;i=i+1){
        cin>>v[i]>>w[i]>>s[i];
    }
    for(int i=1;i<=b;i=i+1){
        for(int j=1;j<=a;j=j+1){
        	dp[i][j]=dp[i-1][j];
            for(int k=1;k<=s[i];k=k+1){
                if(j>=k*v[i]){
                    dp[i][j]=max(dp[i][j],dp[i-1][j-k*v[i]]+w[i]*k);
                }
            }
        }
    }
    cout<<dp[b][a];
//    cout<<'\n';
//    for(int i=1;i<=b;i=i+1){
//    	for(int j=1;j<=a;j=j+1){
//    		cout<<dp[i][j]<<' ';
//		}
//		cout<<'\n';
//	}
    return 0;
}
/*
希望佛祖保佑我AC
*/
这里空空如也

有帮助,赞一个