
数据结构
文章平均质量分 63
JavonLu
想得很多,所以需要求做更多
展开
-
树状数组 线段树 模板
树状数组和线段树都是对于一个区间查询和修改的时间复杂度比较低(log(n))的数据结构,主要用于查询任意两位之间的所有元素之和。 树状数组和线段树很像,但能用树状数组解决的问题,基本上都能用线段树解决,而线段树能解决的树状数组不一定能解决。相比较而言,树状数组效率要高很多。 树状数组生成树状数组: 设a[1…N]为原数组,定义c[1…N]为对应的树状数组: c[i] = a[i - 2^k原创 2016-03-01 19:52:51 · 401 阅读 · 0 评论 -
RMQ ST算法
RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j之间的最小/大值。 最简单当然是遍历,时间复杂度O(n),但是在数据较大以及 查询次数比较多的情况下,较差。 主要介绍的ST算法,ST算法是一种基于DP的在线算法。该算法通过对数据进行预处理(时间复杂度转载 2016-01-31 19:36:26 · 620 阅读 · 0 评论 -
Vasiliy's Multiset (异或字典树)
题目题意: 根据题目定义的三个操作,增加删除和查找异或最大的值。 + x: 表示向集合中添加一个元素x - x:表示删除集合中值为x的一个元素 ? x:表示查询集合中与x异或的最大值为多少input 10 + 8 + 9 + 11 + 6 + 1 ? 3 - 8 ? 3 ? 8 ? 11 output 11 10 14 13思路: 一种字典树的应用,当时没原创 2016-08-31 21:35:50 · 727 阅读 · 0 评论