![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树状数组
cqbz_yanglin
垃圾
展开
-
树状数组:区间修改,单点查询(详解)
我已经在上一篇博客 《树状数组:单点修改,区间查询(详解)》中介绍了树状数组,并且讲解了一道例题。今天就再来看一道题: 题目描述 给定数列 ,你需要依次进行 q个操作,操作有两类: 1 l r x:给定 ,对于所有 ,将 加上 (换言之,将 分别加上 ); 2 i:给定 ,求 的值。 输入格式: 第一行包含 2 个正整数 ,表示数列长度和询问个数。 第二行 n个整数 ,表示初始数列。 接下来 q 行,每行一个操作,为以下两种之一: 1 l r x:对于所有 ,将 a[r] 加上 x ; 2 i :给原创 2020-07-26 21:49:09 · 740 阅读 · 1 评论 -
树状数组:单点修改,区间查询(详解)
问题的提出 : 给定一个序列 a,可以进行两种操作: 1 i x :给定 i , x, 将 a[i] 加上 x; 2 l r :给定 l , r, 求 a[l] + a[l + 1] + ··· + a[r + 1] 的值 (单点修改,区间查询) 首先,我们会想到直接用一个现行的数组。那么单点修改的时间复杂度将是 O(1)O(1)O(1),但是区间查询的时间复杂度却是 O(n)O(n)O(n), 数据范围一大,就很有可能会超时。 那么,又有人会想到用一个前缀和数组,但是有没有想过,虽然区间查询的时间复原创 2020-07-26 20:08:16 · 1088 阅读 · 1 评论