[题] 差分 #差分

题目

差分


题解

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

代码

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;
}
相关推荐
AC赳赳老秦3 分钟前
OpenClaw权限管理实操:团队共享Agent,设置操作权限,保障数据安全
服务器·开发语言·前端·javascript·excel·deepseek·openclaw
geovindu14 分钟前
go: Proxy Pattern
开发语言·后端·设计模式·golang·代理模式
langsiming20 分钟前
【无标题】
java·开发语言·数据库
꧁细听勿语情꧂21 分钟前
合并两个有序表、判断链表的回文结构、相交链表、环的链表一和二
c语言·开发语言·数据结构·算法
Rust语言中文社区22 分钟前
【Rust日报】2026-04-24 Vizia 0.4 发布——纯 Rust 声明式响应式 GUI 框架
开发语言·后端·rust
结衣结衣.25 分钟前
手把手教你实现文档搜索引擎
linux·c++·搜索引擎·开源·c++11
木井巳27 分钟前
【递归算法】解数独
java·算法·leetcode·决策树·深度优先·剪枝
普通网友31 分钟前
JavaScript:ESLint+Prettier 规范代码格式
开发语言·javascript·ecmascript
t***54432 分钟前
如何在 Dev-C++ 中切换编译器
java·开发语言·c++
jiayong2344 分钟前
第 38 课:任务列表里高亮当前正在查看详情的任务
开发语言·前端·javascript·vue.js·学习