TM有毒吧。。。全WA

P1048 [NOIP2005 普及组] 采药

你不能直接输出f[m][y]
by 张曜玺 @ 2017-08-28 19:52:56


要从dp数组中找出最大的之后再输出
by 张曜玺 @ 2017-08-28 19:53:34


```cpp #include <bits/stdc++.h> using namespace std; int y,m,w[105],v[105],f[2000][2000],ans; int main() { scanf("%d%d",&y,&m); for(int i=1;i<=m;i++) scanf("%d%d",&w[i],&v[i]); for(int i=1;i<=m;i++) for(int j=1;j<=y;j++) { if(w[i]<=y) f[i][j]=max(f[i-1][j],f[i-1][j-w[i]]+v[i]); else f[i][j]=f[i-1][j]; ans=max(ans,f[i][j]); } cout<<ans; return 0; } ```
by FireKid @ 2017-08-28 19:55:51


又WA了
by FireKid @ 2017-08-28 19:56:06


而且题解都是直接输出f[m][y]的
by FireKid @ 2017-08-28 19:56:39


你的y和m分别是什么
by 张曜玺 @ 2017-08-28 19:59:38


你这两层循环错了吧
by 张曜玺 @ 2017-08-28 20:00:34


总时间和药数
by FireKid @ 2017-08-28 20:01:07


内层循环不应该从0开始吗
by 张曜玺 @ 2017-08-28 20:01:52


好像还是不对,我再看看。。。。
by 张曜玺 @ 2017-08-28 20:03:59


| 下一页