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
*/
浙公网安备 33010602011771号