求关
```cpp
#include <bits/stdc++.h>
using namespace std ;
int w[30], v[30], dp[30005];
int main()
{
int m, n;
cin >> n >> m;
for(int i = 1; i <= m; i++)
cin >> w[i] >> v[i];
for(int i = 1; i <= m; i++)
for(int j = n; j >= w[i]; j--)
dp[j] = max(dp[j], dp[j - w[i]] + w[i] * v[i]);
printf("%d", dp[n]);
return 0 ;
}
by AlexSong @ 2023-08-15 11:30:14
@[zhouzihao2020](/user/561371)
在`if(j>=a[i].v) dp[i][j]=max(dp[i-1][j],dp[i-1][j-a[i].v]+a[i].p*a[i].v);`后面加个`else dp[i][j]=dp[i-1][j];`
by ninghaotian @ 2023-08-15 11:35:40