【題解】CSES 1745 Money Sums

【題目敘述】https://cses.fi/problemset/task/1745/
【解題想法】DP

#include <iostream>
#include <bitset>
using namespace std;
 
int n, a;
bitset <100005> bs;
 
int main() {
    cin >> n;
    bs.reset();
    bs.set(0, 1);
    for (int i = 0; i < n; i++){
        cin >> a;
        bs |= bs << a;
    }
    cout << bs.count()-1 << "\n";
    for (int i = 1; i < 100005; i++){
        if (bs[i]) cout << i << " ";
    }
}
分享本文 Share with friends