80分求助!
查看原帖
80分求助!
810054
suzichen03楼主2022/12/12 20:29
#include<iostream>
using namespace std;
int weight[1000001],value[1000001];
int dp[1000001];
int main()
{
	long long num,cap;
	cin >> cap >> num;
	for(int i=1;i<=num;i++)
	{
		cin >> weight[i] >> value[i];
	}
	for(int i=1;i<=num;i++)
	{
		for(int j=1;j<=cap;j++)
		{
			for(int k=0;k*weight[i]<=j;k++)
			{
				if(dp[j-weight[i]*k]+value[i]*k>dp[j])
				{
					dp[j]=dp[j-weight[i]*k]+value[i]*k;
				}
			}
		}
	}
	cout  << dp[cap];
	return 0;
}
2022/12/12 20:29
加载中...