[题] 差分 #差分

题目

差分


题解

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

代码

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;
}
相关推荐
纳兰青华几秒前
拼图大师:从“暴力尝试“到“动态规划“的拆字艺术
java·算法·动态规划
我不是懒洋洋4 分钟前
从零实现一个分布式流处理:Apache Flink的核心设计
c++
2401_869769598 分钟前
C/C++常识
c++
星马梦缘10 分钟前
算法设计导论 课堂笔记
算法·动态规划·分治·时间复杂度·最优二叉树
j7~1 小时前
【Linux】二十六.线程篇三《Linux多线程编程:线程控制、线程ID以及进程地址空间分布、线程局部存储__thread以及clone系统调用》---详解
linux·运维·服务器·开发语言·c++·多线程编辑·线程的控制
维吉斯蔡9 小时前
【VS Code / Cursor】文件夹右键快捷打开与文件类型自动关联
开发语言·程序人生·学习方法
luj_176811 小时前
星火科技助力边远地区防病攻坚
c语言·开发语言·c++·经验分享·算法
always_TT11 小时前
【Python 日志记录:logging 模块入门】
开发语言·python·php
xcLeigh11 小时前
Go入门:变量声明的五种方式详解
java·开发语言·golang
zmzb010312 小时前
C++课后习题训练记录Day175
开发语言·c++