80怀疑人生
查看原帖
80怀疑人生
1385836
interory楼主2024/7/18 19:37
#include <bits/stdc++.h>
using namespace std;
const int N=20100;
int all[N];
int dp[N][N];
int num[N]; 
signed main(){
	int money,kind;
	cin>>money>>kind;
	for(int i=1;i<=kind;i++){
		int a=0;
		cin>>num[i]>>a;
		all[i]=num[i]*a;
	}
	int max1=-1; 
	for(int i=1;i<=kind;i++){
		for(int j=1;j<=money;j++){
			if(j<num[i]) dp[i][j]=dp[i-1][j];
			else{
				dp[i][j]=max(dp[i-1][j-num[i]]+all[i],dp[i-1][j]);
			}
			
			if(dp[i][j]>max1) max1=dp[i][j];
		}
	}
	cout<<max1;
	return 0;
}

求LaoDa(DaLao)们帮忙调一下!

2024/7/18 19:37
加载中...