随笔分类 -  线段树

摘要:题目传送门 这道题可以树链剖分+线段树。 其他操作模板,第二个操作只需要将x~x+size[x]-1区间加值即可。 code: 阅读全文
posted @ 2018-03-20 07:33 Cptraser 阅读(161) 评论(0) 推荐(0)
摘要:题目传送门 树链剖分,计算机术语,指一种对树进行划分的算法,它先通过轻重边剖分将树分为多条链,保证每个点属于且只属于一条链,然后再通过数据结构(树状数组、SBT、SPLAY、线段树等)来维护每一条链。 以下是几种概念: 常见的路径剖分的方法是轻重树链剖分(启发式剖分) 将树中的边分为:轻边和重边 ž 阅读全文
posted @ 2018-03-19 18:23 Cptraser 阅读(197) 评论(0) 推荐(0)
摘要:题目传送门 题目大意:Bash喜欢对数列进行操作。第一种操作是询问l~r区间内的gcd值是否几乎为x,几乎为表示能否至多修改一个数达到。第二种操作是将ai修改为x。总共Q个询问,N个数。 Solution:简单来说,就是对区间gcd值的维护,使用线段树实现。 code: 阅读全文
posted @ 2018-02-09 10:13 Cptraser 阅读(194) 评论(0) 推荐(0)
摘要:最小覆盖(cover)、、线段树 【题目描述】 给定 N 个区间[Li,Ri],需要你按照顺序选出一个区间序列使得[1,M]完全被覆盖。并且在选出来的序列中,某个区间[a,b]之前必须保证[1,a]都被已经选中的区间覆盖(即没有“断开”的地方)。求出最少需要选多少区间 【输入文件】 第一行两个整数 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(189) 评论(0) 推荐(0)
摘要:线段树,顾名思义,就是指一个个线段组成的树。 线段树的定义就是: 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。 ——摘自百度百科 如图,这就是一棵线 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(211) 评论(0) 推荐(0)