zoukankan      html  css  js  c++  java
  • AcWing 797.差分

    AcWing 797.差分

    题目描述

    输入一个长度为n的整数序列。

    接下来输入m个操作,每个操作包含三个整数l, r, c,表示将序列中[l, r]之间的每个数加上c。

    请你输出进行完所有操作后的序列。

    输入格式

    第一行包含两个整数n和m。

    第二行包含n个整数,表示整数序列。

    接下来m行,每行包含三个整数l,r,c,表示一个操作。

    输出格式

    共一行,包含n个整数,表示最终序列。

    数据范围

    1≤n,m≤100000,
    1≤l≤r≤n,
    −1000≤c≤1000,
    −1000≤整数序列中元素的值≤1000

    输入样例

    6 3
    1 2 2 1 2 1
    1 3 1
    3 5 1
    1 6 1
    

    输出样例

    3 4 5 3 4 2
    

    题目思路

    用差分思想解决,每次都对差分数组进行操作,降低复杂度

    #include<iostream>
    using namespace std;
    
    const int N = 1e5+10;
    int a[N],b[N];
    
    void insert(int b[],int l,int r,int c)
    {
        b[l] += c;
        b[r+1] -= c;
    }
    
    int main()
    {
        int n,m;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++) 
        {
            scanf("%d",&a[i]);
            insert(b,i,i,a[i]);
        }
        int l,r,c;
        while(m--)
        {
            scanf("%d%d%d",&l,&r,&c);
            insert(b,l,r,c);
        }
        for(int i=1;i<=n;i++) 
        {
            a[i]=a[i-1]+b[i];
            printf("%d ",a[i]);
        }
        return 0;
    }
    
  • 相关阅读:
    css表格单元格间距设置
    JavaScript(js)设置输入焦点(focus)
    让div居中的方法
    Window.open()的使用
    getElementsByTagName的用法
    offsetTop获取top值
    js中indexof的使用
    jquery解析json数据
    iframe的使用
    WCF学习笔记Ⅲ
  • 原文地址:https://www.cnblogs.com/fsh001/p/12248066.html
Copyright © 2011-2022 走看看