为啥只能倒序?

P1284 三角形牧场

发错了
by 邓超8888888 @ 2018-07-13 09:54:16


``` for(int i=1;i<=n;i++) { for(int j=0;j<=tot/2;j++) { for(int k=0;k<=tot/2;k++) { if(j-a[i]>=0&&f[j-a[i]][k] || k-a[i]>=0&&f[j][k-a[i]]) { f[j][k]=1; } } } } 应该是这一个倒序就AC 顺序就WA???? ```
by 邓超8888888 @ 2018-07-13 09:56:21


使用滚动数组时顺序循环会让决策中出现同一个木板重复使用的情况,就不成立了
by zhyh @ 2018-07-23 21:52:51


背包呀兄嘚
by ysj1173886760 @ 2018-10-12 17:09:00


@[邓超8888888](/user/51245) 省略了一维数组,更新状态会用到自己之前的状态,但是如果从前往后更新,用的状态就是已经更新后的,与算法原意不符,必须从后往前更新。这题循环类似背包,建议去看`背包九讲`里的无限背包和01背包
by kyEEcccccc @ 2020-02-07 15:25:44


|