[题] 差分 #差分

题目

差分


题解

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

代码

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;
}
相关推荐
MC皮蛋侠客4 小时前
Google Test 单元测试指南
c++·单元测试·google test
方也_arkling4 小时前
【Java-Day08】static / final / 枚举
java·开发语言
艾莉丝努力练剑4 小时前
【Linux:文件】Ext系列文件系统进阶
linux·运维·服务器·c++·文件系统·文件io·ext
风吹夏回5 小时前
Python 全局异常处理:从“满屏 try-except”到优雅兜底
开发语言·python
Chengbei115 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
llz_1125 小时前
web-第一次课后作业
java·开发语言·idea
kkeeper~5 小时前
0基础C语言积跬步之数据在内存中的存储
c语言·数据结构·算法
小熊Coding5 小时前
Python爬取当当网二手图书项目实战!
开发语言·爬虫·python·beautifulsoup·requests·二手图书
秋95 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
xiaoshuaishuai85 小时前
C# 内存管理与资源泄漏
开发语言·c#