p1616 疯狂的采药

p1616 疯狂的采药 

#include<iostream>
#include<vector>
using namespace std;
const int Maxn=10000001; 
int a[Maxn],b[Maxn],dp[Maxn];
int main()
{
//	freopen("p1616_1.in","r",stdin);
	int t,m,mi=0;
	cin>>t>>m;
	for (int i=1;i<=m;i++)
	{
		int a1,b1;
		cin>>a1>>b1;
		if (a1<=t)
		{
			mi++;
			a[mi]=a1;
			b[mi]=b1;
		}
	}
	for (int i=1;i<=mi;i++)
	{
		for (int j=t;j>=0;j--)
		{
			for (int k=0;k<=t/a[i];k++) 
			{
				if (j>=k*a[i])
					dp[j]=max(dp[j],dp[j-k*a[i]]+k*b[i]);
				else
					break;
			}
		}
	}
	cout<<dp[t]<<endl; 
}
/*
70 3
71 100
69 1
1 2
*/ 
 

  

posted @ 2022-03-24 09:24  心悟&&星际  阅读(22)  评论(0编辑  收藏  举报