#include<iostream>
#include<cstdio>
using namespace std;
int a[101001],b[100010],dp[110100];
int main(){
int n,m;
scanf("%d%d",&m,&n);
for(int i=1;i<=n;i++){
scanf("%d %d",&a[i], &b[i]);
}
for(int i=1;i<=n;i++){
for(int j=m;j>=0;j--){
if(j-a[i]>=0){
dp[j]=max(dp[j],dp[j-a[i]]+b[i]);
}
}
}
int mx=0;
for(int i=0;i<=m ;i++){
mx=max(mx,dp[i]);
}
cout<<mx;
return 0;
}
01背包问题
最新推荐文章于 2024-10-15 11:47:10 发布