2 条题解

  • 1
    @ 2026-4-2 20:54:12
    import java.util.*;
    import java.io.*;
    
    public class Main{  
      //下面这个是一种更轻量化的输入方法
      //用的内存和时间都更少 可以记一下
      //老大网站上的题解我模仿着写会部分超时
        static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
    
        public static int nextInt() throws IOException{
            in.nextToken();
            return (int) in.nval;
        }
        public static void main(String [] args) throws IOException{
    
            int n =nextInt();
            int m =nextInt();
            long [] a = new long [n+1];
            long [] D = new long [n+2];
            for(int i=1;i<=n;i++){
                a[i]=1l*nextInt();
                D[i]=a[i]-a[i-1];
            }
            for(int i=1;i<=m;i++){
                int l =nextInt();
                int r =nextInt();
                int d =nextInt();
                D[l]+=d;
                D[r+1]-=d;
            }
            //将对差分数组的操作还原成对原数组的操作
            for(int i=1;i<=n;i++){
                D[i]=D[i]+D[i-1];
                System.out.print(D[i]+" ");
            }
        }
    }
    

    信息

    ID
    22
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    384
    已通过
    129
    上传者