~~蒟蒻在线求助~~

P1926 小书童——刷题大军

```cpp z=i+1; ``` 应该是 ```cpp z=i-1; ``` 可能就好了
by CGDGAD @ 2020-10-19 19:53:50


~~然而似乎并没有~~ 而且 这里z已经小于应该求的真实值,z=i-1不就更小了???
by flash_starr @ 2020-10-19 19:58:03


```c #include <bits/stdc++.h> using namespace std; int n,m,k,r,ans,w1[10005],w2[10005],val[10005],dp1[100005],dp2[100005]; int main() { cin>>n>>m>>k>>r; for(int i=1;i<=n;i++) { cin>>w2[i]; } for(int i=1;i<=m;i++) { cin>>w1[i]>>val[i]; } for(int i=1;i<=m;i++) { for(int j=r;j>=w1[i];j--) { dp1[j]=max(dp1[j],dp1[j-w1[i]]+val[i]); } } for(int i=0;i<=r;i++) { if(dp1[i]>=k) { ans=r-i; break; } } for(int i=1;i<=n;i++) { for(int j=ans;j<=r;j++) { dp2[j]=max(dp2[j],dp2[j-w2[i]]+1); } } cout<<dp2[r]<<endl; return 0; } ```
by RicardoLu @ 2021-07-21 19:29:31


|