1 条题解

  • 0
    @ 2024-9-14 19:54:51

    一维差分:复杂度 O(n+k)O(n+k)

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    const int N = 1e6 + 10, INF = 0x3f3f3f3f;
    int n, k, a[N], d[N], l, r, c;
    
    int main() {
        cin >> n >> k;
        for (int i = 1; i <= n; i++)
            cin >> a[i], d[i] = a[i] - a[i - 1];
        while (k--) {
            cin >> l >> r >> c;
            d[l] += c;
            d[r + 1] -= c;
        }
        for (int i = 1; i <= n; i++) {
            d[i] += d[i - 1];
            cout << d[i] << " ";
        }
        return 0;
    }
    
    • 1

    信息

    ID
    328
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    102
    已通过
    63
    上传者