dp30分求助

P1048 [NOIP2005 普及组] 采药

@[qwqasazxzcde](/user/549340) 您试试先输入,再 dp?
by sunyizhe @ 2022-10-18 13:10:14


```cpp #include<bits/stdc++.h> using namespace std; int t,m; int x,y,a[105],b[105],c[1005]={}; int main() { cin>>t>>m; for(int k=1;k<=m;k++) cin>>a[k]>>b[k]; for(int k=1;k<=m;k++) { for(int z=t;z>=a[k];z--) { c[z]=max(c[z-1],c[z-a[k]]+b[k]); } } cout<<c[t]; } ``` @[sunyizhe](/user/481330) 123AC其他WA
by qwqasazxzcde @ 2022-10-18 13:19:00


我知道了。你的状态转移方程错了,应该为: $$c_z=\max(c_z,c_{z-a_k}+b_k)$$ 我把我对的代码改成你错误代码的方程,果然是[这样](https://www.luogu.com.cn/record/90409869)。
by sunyizhe @ 2022-10-18 13:24:09


@[sunyizhe](/user/481330) 已过 感谢
by qwqasazxzcde @ 2022-10-18 13:28:07


|