题解 | 【模板】差分

【模板】差分

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

相关推荐

投递美团等公司6个岗位
点赞 评论 收藏
分享
你背过凌晨4点的八股文么:简历挂了的话会是流程终止,像我一样
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务