摘要: 可持久化线段树 静态区间第 $k$ 小 给定 $n$ 个整数构成的序列,将对于指定的闭区间查询其区间内的第 $k$ 小值。 权值线段树 权值线段树就是对一个值域上值的个数进行维护的线段树。 举个栗子,对于1,1,2,3,3,3,4,4。 在权值线段树上如何求第k小的值? 显然如果左子树的值大于k的话 阅读全文
posted @ 2020-01-25 16:48 hezongdnf 阅读(168) 评论(0) 推荐(0) 编辑
摘要: ST表 与线段树相比,预处理复杂度同为O(nlogn),查询时间上,ST表为O(1),线段树为O(nlogn) 适合求区间最值问题,不适合求区间和 c++ int a[maxn],st[maxn][20]; void rmq(int n) //建立st表 { for(int j = 1; (1 阅读全文
posted @ 2020-01-25 09:40 hezongdnf 阅读(275) 评论(0) 推荐(0) 编辑
摘要: Problem Description https://www.luogu.com.cn/problem/P1972 HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳, 因此,他的项链变得 阅读全文
posted @ 2020-01-25 09:40 hezongdnf 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 树状数组 一般求解带修改的区间查询。比如带修改的区间和问题。 lowbit lowbit(x) 二进制下x最低位的1所对应的数,返回的是$2^k$。 比如8(1000)返回8,7(0111) 返回1。 比如说要更新2这个点,首先 更新,然后 更新,然后 更新... 更新7这个点,首先 更新,然后 更 阅读全文
posted @ 2020-01-25 09:39 hezongdnf 阅读(117) 评论(0) 推荐(0) 编辑