首页 > 其他分享 >差分数组

差分数组

时间:2023-03-09 16:45:20浏览次数:39  
标签:前缀 int cin 差分 数组 change

 

 首先要了解几个概念,假定b(n)是a(n)的差分数组。(1)差分数组:b(n)=a(n)-a(n-1),(2)a(i)数组的值是差分数组b(1)-b(i)的和。即前缀和sum(i)。差分数组的前缀和:b(n)+=b(n-1)(3)在b(l)的基础上+c,在b(r+1)的基础上-c,就是在a(l)-a(r)的范围内+c,影响的是a(l~r)的范围,不影响a(r)后面的范围。

#include<iostream>

using namespace std;

const int N=1e5+10;

int a[N];

int change[N];

int main(){

int n,m;

cin>>n>>m;

for(int i=1;i<=n;i++){

cin>>a[i];

change[i]=a[i]-a[i-1];//差分数组

}

while(m--){

int l,r,c;

cin>>l>>r>>c;

change[l]+=c;

change[r+1]-=c;

}

for(int i=1;i<=n;i++){

//方法1:a[i]=change[i]+a[i-1]

//方法2:change[i]+=change[i-1]

cout<<change[i]+=change[i-1]<<"  ";

}

}

标签:前缀,int,cin,差分,数组,change
From: https://www.cnblogs.com/chenxinyue/p/17199026.html

相关文章

  • 标记数组的使用
      #include<iostream>usingnamespcaestd;constintN=1e4+10;intst[N];intnum=0;intmain(){intn,k;cin>>n>>k;for(inti=1;i<=n;i++){intx;cin>>x;......
  • 3.4数组的常用方法
    ​ 数组的常用方法<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title></title><script>......
  • a.b.c.d 转 a:{b:{c:123}} 支持对象 数组
    方法中用到lodash.js的一个merge合并对象方法letarr=[   {       name:'a[0].b.c',       value:123   },{       name:'a[0].b.a......
  • 华为OD机试 数组合并
    数组合并......
  • vba 数组
    数组是具有相同数据类型并共同享有一个名字的一组变量的集合.数组中的元素通过索引数字加以区分,定义数组的方法如下:​Dimarray_name(n)Astype​(其中n是数组元素的......
  • 数组 方法:push pop 自己实现
    大概需要了解的知识点就是1.函数原型对象2.函数内this指向3.函数形参的概念简易实现,很好理解(push)      (pop) ......
  • 1310. 子数组异或查询 (Medium)
    问题描述1310.子数组异或查询(Medium)有一个正整数数组arr,现给你一个对应的查询数组queries,其中queries[i]=[Lᵢ,Rᵢ]。对于每个查询i,请你计算从Lᵢ到Rᵢ......
  • 【流畅的Python0202】序列构成的数组
    1.内置序列类型概览容器序列能存放不同类型数据,因为存放的是任意对象的引用扁平序列只能存放相同类型的数据,因为存放的是值除了list、tuple和collections.dequ......
  • [leetcode]2584. 分割数组使乘积互质 (质因数分解)
    题目链接:分割数组使乘积互质思路:指针循环从\([0,len-1)\)每次动态维护指针左边所有数与指针右边所有数质因数交集,第一次交集为0的地方为答案。首先将打表\(10^6\)之内的质......
  • 数组的学习(偷懒还没有学完)
    数组数组的出现,是为了我们更加方便的操作数据。数组是存储同一种数据类型多个元素的集合,也可以看做一个容器。数组既可以存储基本数据类型,也可以存储引用数据类型数组......