StkOvflow

STACK OVERFLOW!

一言(ヒトコト)

zn:有没有说出题人谁啊
yxy:好像是lxq??
zn:暴打出题人
yxy:老师!!!

797差分

原题链接
定义差分数组b[],其中b[i]=a[i]a[i1]
ax=i=1xbi
更改a[l r], 只要更改b[l1]b[r]即可, 最后要对b[]数组做一次前缀和得到之前的a[]

#include <bits/stdc++.h>

using namespace std;

const int N = 1e5 + 10;
int n, a[N], b[N], m;

void insert(int l, int r, int c)
{
    b[l] += c;
    b[r + 1] -= c;
}

int main()
{
    scanf("%d%d",  &n,  &m);

    for(int i = 1;i <= n;i ++ )
    {
        scanf("%d",  &a[i]);
        b[i] = a[i] - a[i - 1];
    }
        

    while(m--)
    {
        int l, r, c;
        scanf("%d%d%d",  &l,  &r,  &c);
        insert(l,  r,  c);
    }

    for(int i = 1;i <= n;i ++ )
        b[i] += b[i - 1];

    for(int i = 1;i <= n;i ++ )
        printf("%d ", b[i]);

    return 0;
}
posted @   StkOvflow  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示