90pts 求助悬赏一关注
查看原帖
90pts 求助悬赏一关注
875566
xixiangrui楼主2023/7/19 15:28
#include<bits/stdc++.h>
using namespace std;
#define int long long
int dp[35][30005],v[35],w[35];
signed main(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>v[i]>>w[i];
		w[i]*=v[i];
	}
	for(int i=1;i<=m;i++){
		for(int j=n;j>=v[i];j--){
			if(j>=v[i]){
				dp[i][j]=max(dp[i-1][j],dp[i-1][j-v[i]]+w[i]);
			}
		}
	}
    cout<<dp[m][n];
    return 0;
}
2023/7/19 15:28
加载中...