60分求助

P1616 疯狂的采药

```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


|