50pts求助
查看原帖
50pts求助
1127424
damuzhi楼主2024/7/1 10:09
#include <bits/stdc++.h>

using namespace std;

int dp[10000][10000];
int a[100010];
int b[100010];

int main()
{
	int mon,num;
	cin >> mon >> num;
	for(int i = 1; i <= num; i++)
	{
		cin >> a[i] >> b[i];
		b[i] *= a[i];
	}
	for(int i = 1; i <= num; i++)
	{
		for(int j = 1; j <= mon; j++)
		{
			if(j >= a[i])
				dp[i][j] = max(dp[i-1][j],dp[i-1][j-a[i]] + b[i]);
			else
				dp[i][j] = dp[i-1][j];
		}
	}
	cout << dp[num][mon] <<endl;
	return 0;
}
2024/7/1 10:09
加载中...