feiwu
by wangzhenting @ 2024-03-03 10:29:03
@[shadow_lgd](/user/786798)
输入 `n` 和 `m` 的顺序翻了,第二层应该倒序枚举,否则一种草药可以采摘两次以上了,最后的结果状态也不太对劲。
给你改了改:
```cpp
#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int n,m;
int v[N],w[N];
int f[N][N];
int main()
{
int ans=0;
cin >> m >> n;
for(int i=1;i<=n;i++)
cin >> v[i] >> w[i];
for(int i=1;i<=n;i++){
for(int j=m;j>=0;j--){
f[i][j]=f[i-1][j];
if(j>=v[i])
f[i][j]=max(f[i][j],f[i-1][j-v[i]]+w[i]);
}
}
cout << f[n][m];
return 0;
}
```
by Terrible @ 2024-03-03 10:33:14
@[Terrible](/user/195942)
谢谢大佬QAQ
by shadow_lgd @ 2024-03-03 10:54:10
@[shadow_lgd](/user/786798) feiwu
by wangzhenting @ 2024-03-03 11:03:51