题解:P12132 [蓝桥杯 2025 省 B] 可分解的正整数

· · 题解

题解

可以发现,形如 \{-2, -1, 0, 1, 2\} 的和一定为 0,即 \sum^k_{i = -k}i = 0, k \in \Z^+,所以只需要在这样的序列后面加一个需要表示的正整数即可,比如要表示的是 3,所求序列是 \{-2, -1, 0, 1, 2, 3\}

那么只有 1 无法被表达出来,所以答案是数组 a 中所有不是 1 的数字的个数。

代码

void solve(){
    int n; cin >> n;
    vector<int> a(n);
    int R = 0;
    for(int i = 0; i < n; ++i){
        cin >> a[i];
        R += (a[i] != 1);
    }
    cout << R << endl;
    return;
}