```cpp
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,m,w[100005],v[100005],dp[10000005];
signed main()
{
cin>>m>>n;
for(int i=1;i<=n;i++)cin>>w[i]>>v[i];
for(int i=1;i<=n;i++)
{
for(int j=w[i];j<=m;j++)
{
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}
}
cout<<dp[m];
return 0;
}
QAQ
```
不需要if判断吧,这是完全背包
(求关)
by zyhe2013 @ 2024-02-06 13:14:33
$dp$ 数组改为一维滚动数组。 @[ZMY_illusion](/user/479204)
by bcbgszyzh @ 2024-02-25 11:57:32