警示后人
查看原帖
警示后人
828664
Llx2022楼主2023/9/12 10:39

这里一定得是大于,因为在背包更新的过程中,对于不合法的状态会存在从上次合法的状态转移,然后本来不合法的值就是 0x3f3f3f3f0x3f3f3f3f 但是由于转移了,这个值会 +1+1 仍旧不合法,因此得是 ≥\ge。

if(mn>=0x3f3f3f3f) 

if(ans==0x3f3f3f3f){
        for(int i=1;i<=n;i++){
            int mn=2e9;
            for(int j=low[i];j<=up[i]+1;j++){
                mn=min(f[i][j],mn);
            }
            if(mn>=0x3f3f3f3f) break;
            if(flag[i]) cnt++; 
        }
        putchar('0'),putchar('\n');
        write(cnt);
    }
2023/9/12 10:39
加载中...