[题] 差分 #差分

题目

差分


题解

复制代码
将要加上某个数的区间第一个数加上要加的数,
区间末的后一个元素减去此元素
就可以使区间内的数都加上此元素而后面的数保持原样

代码

cpp 复制代码
#include<bits/stdc++.h>
#define MAXN 200005
using namespace std;
int n,m,a[MAXN],b[MAXN];
int main(){
    cin >> n >> m;
    //原数组a
    for(int i = 1; i <= n; i ++) 
		cin >> a[i];
	//差分数组b 
    int l, r, c;
    for(int i =1 ; i <= m; i ++){
        cin >> l >> r >> c;
        b[l] += c; 
		b[r + 1] -= c;
    }
    //求差分的前缀和,得到的b[i]就是a[i]最后要加上的数
    for(int i = 1; i <= n ;i ++) 
		b[i] += b[i - 1];
    for(int i = 1; i <= n; i ++) 
		cout << a[i] + b[i] << " ";
    return 0;
}
相关推荐
z落落10 分钟前
C#WinForm控件实战:Panel与单选框动态创建
开发语言·c#
ptc学习者10 分钟前
python 中描述符@property property 大概的样子
开发语言·python
zmzb010312 分钟前
Python课后习题训练记录Day129
开发语言·python
洛水水15 分钟前
【力扣100题】81.寻找两个正序数组的中位数
数据结构·算法·leetcode
张忠琳20 分钟前
【Go 1.26.4】Golang Map 深度解析
开发语言·后端·golang
Vertira21 分钟前
如何对QT开发的软件进行打包[已解决]
开发语言·qt
AI人工智能+电脑小能手23 分钟前
【大白话说Java面试题 第110题】【并发篇】第10题:CAS 存在哪些问题?
java·开发语言·面试
石一峰69931 分钟前
C 语言函数设计模式实战经验
c语言·开发语言·设计模式
sitellla37 分钟前
Pydub:用 Python 处理音频,不写废话
开发语言·python·其他·音视频
happymaker062644 分钟前
LeetCodeHot100——155.最小栈
算法