求助 为什么最后要循环判断最大值

P1048 [NOIP2005 普及组] 采药

@[MTPLINKdiod](/user/135590) 因为有可能你用的时间更少,但价值更大
by bamboo1030 @ 2022-04-10 18:37:48


然额并不需要 ```cpp #include<bits/stdc++.h> using namespace std; #define N 1010 int t,m; int v[N],w[N]; int f[2][N];//f[i][j]表示到第i株植物,花费时间为j的最大价值 int main(){ scanf("%d%d",&t,&m); for(int i=1;i<=m;i++){ scanf("%d%d",&v[i],&w[i]); } for(int i=1;i<=m;i++){ for(int j=0;j<=t;j++) f[i&1][j]=f[(i-1)&1][j]; for(int j=v[i];j<=t;j++){ f[i&1][j]=max(f[i&1][j],f[(i-1)&1][j-v[i]]+w[i]); } } cout<<f[m&1][t]<<endl; return 0; } ``` 无需初始化为-1.
by ppip @ 2022-04-10 19:02:35


@[MTPLINKdiod](/user/135590)
by ppip @ 2022-04-10 19:02:45


@[ppip](/user/374433) 谢谢大佬!!!
by MTPLINKdiod @ 2022-04-10 22:13:20


|