数据太水开999都能过

P1048 [NOIP2005 普及组] 采药

???????然而你好像没开999
by 瞬闪影 @ 2017-10-31 20:09:34


能问一下思路吗? f[j]=max(f[j],f[j-w[i]]+v[i]); 这一行没看懂 大佬求帮助
by ___I_AK_IOI @ 2017-11-01 17:33:37


@[白哥小葱](/space/show?uid=54520) 典型的背包问题,背包的转移方程
by Lyrics @ 2017-12-03 21:40:51


调理很清晰,如果格式在注意一下就更好了?????????????????
by 一起加油! @ 2018-01-26 20:40:27


糟糕…………………………,刷了个屏…………………………
by 一起加油! @ 2018-01-26 20:41:44


傻逼
by 一起加油! @ 2018-01-27 20:56:26


对不起,我本来是想打“失败”的,打错了╭(╯^╰)╮
by 一起加油! @ 2018-01-27 20:58:03


#### @[白哥小葱](/space/show?uid=54520) 他用了一维数组优化。。。 ##### 这个意思是在选择第i个药草时,f[j]=max(f[j],f[j-w[i]]+v[i]);
by 九思 @ 2018-02-06 14:34:39


刚有人捣乱(他已经被我打了一顿:-))。咳咳,回到正题: ------------ 这句的意思是在选择第i个药草时,有选和不选两种策略,(注意这里f存的是循环i-1时的数据,对于每个f[j]存的是当**采了重量为j药草时**可以达到的最大价值(介么多介么重的药草,总有个最大的价值吧),因为每次dp都只关系到i-1行和i行,所以就直接在一维数组里进行dp): ###### 不选:f[j]=f[j]%跟先前的价值、重量一样,不变% ###### 选:**f[j]=f[j-w[i]]**%在没采i药草前用了j-w[i]个重量时里面存放的价值(采完后重量就是j了)%**+v[i]**%加上i药草自身的价值% 然后把f[j]更新为循环i时的数据。
by 九思 @ 2018-02-06 15:01:21


@[jeffice0325](/space/show?uid=37770) 能给个思路吗? ~~蟹蟹~~^v^
by 夜殇 @ 2018-03-02 08:56:58


|