题解 | 【模板】差分

【模板】差分

https://www.nowcoder.com/practice/4bbc401a5df140309edd6f14debdba42

(挣牛币用的)

先开差分数组,再这样那样,最后求出差分数组的前缀和就好了

#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
    int n, m;
    cin >> n >> m;
    vector<int> arr(n + 1);
    for(int i = 1; i <= n; ++i)
        cin >> arr[i];
    vector<int> v(n + 2);
    for(int i = 1; i <= n; ++i)
        v[i] = arr[i] - arr[i - 1];

    while(m--)
    {
        int l, r, k;
        cin >> l >> r >> k;
        v[l] += k;
        v[r + 1] -= k; 
    }
    partial_sum(v.begin(), v.end(), v.begin());
    for(int i = 1; i <= n; ++i)
        cout << v[i] << ' ';
}
// 64 位输出请用 printf("%lld")

#牛客春招刷题训练营#
全部评论
我不会差分,写不出来怎么办?
1 回复 分享
发布于 04-17 16:22 辽宁

相关推荐

吴offer选手:学到了,下次面试也放张纸在电脑上,不然老是忘记要说哪几个点
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务