题目:
分析:最基础的背包问题。等号那个又差点错,当然可以等啦!
代码:
#include<bits/stdc++.h>
using namespace std;
long long A[1001][101];
int main()
{
memset(A,0,sizeof(A));
int m,n;
cin>>m>>n;
int B[n+1][2];
for(int i=1;i<=n;i++)
{
cin>>B[i][0]>>B[i][1];
}
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
A[i][j]=A[i][j-1];
if(i>=B[j][0]) A[i][j]=max(A[i][j-1],A[i-B[j][0]][j-1]+B[j][1]);
}
}
cout<<A[m][n];
}