#34033: 想法分享


dfd8282@gmail.com (fishhh)

學校 : 嘉義市私立嘉華高級中學
編號 : 99760
來源 : [140.114.24.30]
最後登入時間 :
2025-09-12 15:03:18

我是用 bitset 來寫的,雖然題目沒寫 我就先估測資最大總和是 50000 那可以知道 全部插入加減後的最大最小值分別就是正負50000

所有數平移50000 讓他全部都是正的

然後在bitset[50000]=1

每次經過一個就把他分別往左移右移 這樣就可以知道了

bitset<101015> bs,temp;

bs[50000]=1;

            for(int i=1;i<=n;i++){
                temp = bs>>ary[i];
                bs = bs<<ary[i];
                bs|=temp;
            }