首页 > 其他分享 >acwing 差分

acwing 差分

时间:2023-02-12 20:12:52浏览次数:47  
标签:int 差分 num 数组 n1 n2 acwing

原题链接

image

题解

分析

  • 使用循环进行操作时,效率是o(r-l),而使用差分,效率是o(1)
  • 差分就是前缀和的逆操作,将差分数组这里叫为b,b[l]+c,就可以使l后面所有项的值都增加,然后b[r+1]-c,将r后面的项还原回去,而题中给的l与r都是从1开始的,所以b[l-1]+c b[r]-c
  • 最后使用一个数组,这里称为c,将差分数组进行前缀和操作,最后输出即可。

代码

#include "iostream"
const int N=100010;
using namespace std;
int num[N]={0};
int b[N]={0};
int d[N]={0};
int main(){
   int n1,n2,l,r,c;
   cin>>n1>>n2;
   for(int i=0;i<n1;i++){
       cin>>num[i];
       if(i!=0){
           b[i]=num[i]-num[i-1];
       }
       else b[i]=num[i];
   }
   for(int i=0;i<n2;i++){
       cin>>l>>r>>c;
       b[l-1]+=c;
       b[r]-=c;
   }
   d[0]=b[0];
   for(int i=0;i<n1;i++){
       if(i!=0)d[i]+=b[i]+d[i-1];
       cout<<d[i]<<' ';
   }
}

标签:int,差分,num,数组,n1,n2,acwing
From: https://www.cnblogs.com/ChengMao/p/17114588.html

相关文章

  • acwing 前缀和练习
    原题链接题解#include"iostream"#include"vector"usingnamespacestd;intmain(){intn,m,tmp,l,r;cin>>n>>m;vector<int>num;num.push_back......
  • 「AcWing学习记录」质数
    AcWing866.试除法判定质数原题链接时间复杂度\(O(\sqrt{n})\)\[d|n\implies\cfrac{n}{d}|n\]\[d\leq\cfrac{n}{d}\impliesd^2\leqn\impliesd\leq\sqrt{n}\]#inc......
  • 「AcWing学习记录」并查集
    并查集1.将两个集合合并2.询问两个元素是否在一个集合当中时间复杂度近乎O(1)基本原理每个集合用一棵树来表示。树根的编号就是整个集合的编号,每个节点存储它的父节点......
  • AcWing 第 90 场周赛 ABC
    (我又来水博客了)才五天没写题,打成这样子,会被自己气shahttps://www.acwing.com/activity/content/2870/AcWing4806.首字母大写#include<bits/stdc++.h>usingnamespa......
  • 「AcWing学习记录」背包问题
    集合划分一般需要满足不重和不漏两个条件,不漏是一定要满足的,但不重不一定任何时候都要满足。AcWing2.01背包问题原题链接有N件物品和一个容量是V的背包。每件......
  • LeetCode全排列AcWing842. 排列数字(/dfs)
    原题解Acwing同一个题,主要参考写法题目给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。约束题解classSolution{publi......
  • Codeforces Round #541 (Div. 2) D - Gourmet choice 差分约束
    观察到n+m最多才2000个点,正解也不是差分约束但是它能跑:)建图比较平凡不记述难得的是用链式前向星T了,改vector过了  T9的话是加了随机化优化,cin读入,链式前向星存边......
  • Codeforces Round #472 D - Riverside Curio 差分约束
    正解据说是贪心+dp可惜我这个人没什么脑子:)(遇到了能用差分约束也能用dp+贪心的第二题了,真是神奇假设有一组合法的sum就能逆推出di,因为ai+di+1=sumi最小化Σdi就是最小......
  • AcWing 799. 最长连续不重复子序列
    (双指针算法优化)思路:暴力解法:for(inti=0;i<n;i++)for(intj=0;j<=i;j++)check(i,j);算法优化:找到某种性质,尤其注意解题过程中存在的......
  • 2019-2020 ICPC, Asia Jakarta Regional Contest E - Songwriter 差分约束(随机化优
    最短路三角形不等式:Xi<=Xj+w(根据最短路的定义,要是不满足的话就不是最短路了)给出若干个形如Xi-Xj<=w的约束条件,考虑求一组合法的解。把问题转化成求最短路,对于Xi-Xj<=w,我......