此题为背包问题,动态规划解决之~
#include<cstdio>
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
freopen("inflate.in","r",stdin);
freopen("inflate.out","w",stdout);
int m,n,dp[10001],cord,time;
memset(dp,0,sizeof(dp));
cin>>m>>n;
for(int i=1;i<=n;i++)
{
cin>>cord>>time;
for(int j=time;j<=m;j++)
dp[j]=max(dp[j],dp[j-time]+cord);
}
cout<<dp[m]<<endl;
return 0;
}