随笔分类 - 树状数组
摘要:考虑维护f[k][x]表示“最低k位所表示的数不大于x”的数的个数。那么查询时答案就为f[k][2k-1]-f[k][2k-1-1]。 同时记录每个数在集合中出现多少次。这样的话插入、删除已经解决了,只剩下加操作。考虑对每一个k都将加操作带来的影响累计作为偏移量就可以了。 明明不知道在写什么结果1A
阅读全文
摘要:容易想到一种暴力的做法:枚举中间的位置,设该位置权值为x,如果其两边存在权值关于x对称即合法。 问题是如何快速寻找这个东西是否存在。考虑仅将该位置左边出现的权值标1。那么若在值域上若关于x对称的两权值标号不同,说明他们的位置分别在两侧,也就说明存在等差子序列。那么只需要判断整体是否相同,哈希即可。
阅读全文
摘要:某两个点间的请求只对不在这条路径上的询问有影响。那么容易想到每次修改除该路径上的所有点的答案。对每个点建个两个堆,其中一个用来删除,线段树维护即可。由于一条路径在树剖后的dfs序中是log个区间,所以其补集也是log个区间。 然而由于复杂度是O(nlog3n)的以及蒟蒻自带大常数,在luogu上T了
阅读全文
摘要:非常裸的KD-tree。然而我没学啊。 考虑如何离线求一个点在平面中的曼哈顿最近点。 绝对值显得有点麻烦,于是把绝对值拆开分情况讨论一波。对于横坐标小于该点的,记录对于纵坐标的前缀x+y最大值和后缀x-y最大值;横坐标大于该点的,记录对于纵坐标的前缀y-x最大值和后缀-y-x最大值。 不过这样不太方
阅读全文

浙公网安备 33010602011771号