//这里数组a与b的关系其实类似于:
a[i]: a[0] a[1] a[2] a[3] a[4]
b[i]: b[0] b[1] b[2] b[3] b[4]
b[i]本质:a[0] +a[1] +a[2] +a[3] +a[4]
-a[0] -a[1] -a[3] -a[4]
import java.io.*;
import java.sql.Array;
import java.util.*;
class Main {
public static void main(String[] args) throws IOException {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int m=sc.nextInt();
int[] a=new int[n+1];//将a看成b的前缀和,
int[] b=new int[n+2];
for (int i = 1; i <= n; i++) {
a[i]=sc.nextInt();
insert(b,i,i,a[i]);
}
while(m-->0){
int l=sc.nextInt();
int r=sc.nextInt();
int c=sc.nextInt();
insert(b,l,r,c);
}
for (int i = 1; i < n + 1; i++) {
a[i]=b[i]+a[i-1];
System.out.print(a[i]+" ");
}
}
public static void insert(int[] b,int l,int r,int c){
b[l]+=c;
b[r+1]-=c;
}
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla