适用范围: 用于查询区间最小值。 时间复杂度 $$ O(n log_2n) $$ 建树: 查询: cpp int query(int ql,int qr,int l,int r,int o){ //[ql,qr]为查询的区间,[l,r]为线段树结点的区间,o为线段树结点编号 if (ql==l && ...
分类:
其他好文 时间:
2018-07-12 20:12:03
阅读次数:
118
http://acm.hdu.edu.cn/showproblem.php?pid=3973 题意 给一个词典和一个主串。有两种操作,查询主串某个区间,问这主串区间中包含多少词典中的词语。修改主串某一位置的字符。 分析 题目要求区间查询,和单点更新,那么最先想到的应该是线段树。可字符串怎么利用线段树 ...
分类:
其他好文 时间:
2018-07-10 11:14:33
阅读次数:
162
描述A lot of battleships of evil are arranged in a line before the battle. Our commander decides to use our secret weapon to eliminate the battleships. ...
分类:
其他好文 时间:
2018-07-09 00:34:07
阅读次数:
182
3155: Preprefix sum https://www.lydsy.com/JudgeOnline/problem.php?id=3155 分析: 区间修改,区间查询,线段树就好了。 然后,这题有树状数组! 代码: 线段树620ms 1 /* 2 一个数修改影响后面的数,使后面的数都增加或者 ...
分类:
其他好文 时间:
2018-07-08 21:19:25
阅读次数:
194
最值差 最值差 Time Limit: 2000/1000ms (Java/Others) Time Limit: 2000/1000ms (Java/Others) Problem Description: 给定N个数A1A2A3A4...AN.求任意区间Ai到Aj中的最大数与最小数之差。 Pro ...
分类:
其他好文 时间:
2018-07-05 13:26:36
阅读次数:
208
中考导致的退役,终于结束了。 为了找回感觉,来了一场美妙的三连测~ 深感自己的菜。 拿到题目,先快速读了一遍,凭直觉以为第二题好做。一开始想用线段树单点修改区间查询。发现坐标数太大,无法操作。打掉,重想,发现放弃一个队伍,本质上减少的桥数,只是它的区间内1的个数。这期间我想过差分,但是终是在离散化后 ...
分类:
其他好文 时间:
2018-07-04 10:29:22
阅读次数:
122
百度百科 Definition&Solution 线段树是一种log级别的树形结构,可以处理区间修改以及区间查询问题。期望情况下,复杂度为O(nlogn)。 核心思想见百度百科,线段树即将每个线段分成左右两个线段做左右子树。一个线段没有子树,当且仅当线段表示的区间为[a,a]。 由于编号为k的节点的 ...
分类:
其他好文 时间:
2018-07-02 19:23:52
阅读次数:
176
说起树状数组,那就不得不提到线段树,它们可以说都可以完成区间修改和区间查询,但是树状数组的常数小,还好写,但是缺点是不能实现其他的高端操作,因此我们应该把这两种方法都掌握。对于那些简单的操作,可以用树状数组来写,反之就得用线段树了。 树状数组的主要思想跟线段树差不多,都是采用分治,但是他们的代码实现 ...
分类:
编程语言 时间:
2018-07-01 19:50:28
阅读次数:
200
树状数组最原始的作用就是求前缀和,可以实现单点修改和区间查询。 但是假设现在有: 1.区间修改,单点查询 2.区间修改,区间查询 但是又不想敲线段树怎么办? 就用树状数组喽。 假设现在有一个原数组a(假设a[0] = 0),有一个数组d,d[i] = a[i] - a[i-1],那么 a[i] = ...
分类:
编程语言 时间:
2018-06-12 11:44:41
阅读次数:
168
题解: 因为n,m很大 所以复杂度应该是和m相关的 考虑到每个点的影响区间是连续的 就很简单了 区间查询最小值线段树维护(st表也可以) 然后注意一下不要重复算一个就可以了 max函数用template<class T> 不能与原来min重名 代码: ...
分类:
其他好文 时间:
2018-06-11 00:40:06
阅读次数:
173