警示后人
查看原帖
警示后人
815796
zzy0618楼主2024/11/18 21:54

最终取答案时,这样是龊的。

for(int i=0;i<=A;++i){
        if(f[n&1][m][i]<INF)ans=min(ans,calc(f[n&1][m][i],i));
        if(g[n&1][m][i]>-INF)ans=min(ans,calc(g[n&1][m][i],i));
    }

因为维护最小土豆价 gg 数组初值为 -INF,中途运算可能大有 -INF的,但仍是不合法转移。可以选比 -INF 大一些的数或 0 来判断。

for(int i=1;i<=A;++i){
        if(f[n&1][m][i]<INF)ans=min(ans,calc(f[n&1][m][i],i));
        if(g[n&1][m][i]>=0)ans=min(ans,calc(g[n&1][m][i],i));
    }
2024/11/18 21:54
加载中...