题解 | 【模板】差分

【模板】差分

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 辽宁

相关推荐

不愿透露姓名的神秘牛友
07-24 13:35
falamo:回答我!look my eyes
点赞 评论 收藏
分享
07-07 12:47
门头沟学院 Java
码农索隆:竟然还真有卡体检报告的
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务