题目:
https://www.luogu.org/problemnew/show/P1048
代码:
#include <iostream>
using namespace std;
int main(void)
{
int t,m;//t采药时间 m草药数目
cin>>t>>m;
int tt[110],vv[110];
int v[110][1010];
int i,j;
for(int i=1;i<=m;i++)
{
cin>>tt[i];
cin>>vv[i];
}
for(i=1;i<=m;i++)
{
for(j=t;j>=1;j--)//j还剩的时间
{
if(j<tt[i])//不够采
{
v[i][j]=v[i-1][j];
}
else
{
v[i][j]=max(v[i-1][j],v[i-1][j-tt[i]]+vv[i]);
}
}
}
cout<<v[m][t];
}