题解:
首先曼哈顿距离有些不好维护,但是它可以转化:
一个点本来的坐标是(x,y),那么可以转化成(x+y,x-y)
这样就人为构造出一种性质:1、2两点曼哈顿距离=max(|x1-x2|,|y1-y2|);
这样我们就可以排序单调搞掉一维,然后另一维只需要求前驱后继到该点的距离
满足则加并查集。
这个过程可以用权值线段树,也可以用平衡树。但是权值线段树还需要离散化,反...
分类:
其他好文 时间:
2015-01-02 12:21:22
阅读次数:
204
题目大意:带插入,单点修改的区间k小值在线查询。
思路:本年度做过最酸爽的题。
树套树的本质是一个外层不会动的树来套一个内层会动(或不会动)的树。两个树的时间复杂度相乘也就是差不多O(nlog^2n)左右。但是众所周知,高级数据结构经常会伴有庞大的常数,所以一般来说树套树的常数也不会小到哪去。所以在做这种题的时候先不要考虑常数的问题。。。
为什么要用替罪羊树呢?因为一般的平衡树都是会...
分类:
其他好文 时间:
2014-12-24 21:38:17
阅读次数:
460
题目链接: BZOJ - 3110题目分析这道题是一道树套树的典型题目,我们使用线段树套线段树,一层是区间线段树,一层是权值线段树。一般的思路是外层用区间线段树,内层用权值线段树,但是这样貌似会很难写。多数题解都使用了外层权值线段树,内层区间线段树,于是我就这样写了。每次插入会在 logn 棵线段树...
分类:
其他好文 时间:
2014-12-18 22:00:17
阅读次数:
213
枚举长度为m的所有段,尝试用中位数更新答案。所以需要数据结构,支持查询k大,以及大于/小于 k大值 的数的和。平衡树、权值线段树、权值分块什么的随便呢。 1 #include 2 #include 3 #include 4 using namespace std; 5 typedef long lo...
分类:
其他好文 时间:
2014-12-06 15:17:20
阅读次数:
186
题目大意:基本是一颗平衡树的基本操作。
思路:本来是Treap的题,但是为了体现出vEB树的独特用处,所以就比较卡时间。权值线段树的常数会小一点,但是还是会T,所以就只能用zkw来水过了。
只需要在求最大值最小值里面好好考虑一下,剩下就没什么好说的了。
CODE:
#include
#include
#include
#include
#define MAX 1...
分类:
其他好文 时间:
2014-11-21 14:29:37
阅读次数:
256
权值分块,虽然渐进复杂度不忍直视,但其极小的常数使得实际运行起来比平衡树快,大多数情况和递归版权值线段树差不多,有时甚至更快。但是被zkw线段树完虐。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define N 100000...
分类:
其他好文 时间:
2014-11-14 17:41:35
阅读次数:
241
权值分块和权值线段树的思想一致,离散化之后可以代替平衡树的部分功能。部分操作的时间复杂度:插入删除全局排名全局K大前驱后继全局最值O(1)O(1)O(sqrt(n))O(sqrt(n))O(sqrt(n))O(sqrt(n))O(sqrt(n))当然,因为要离散化,所以只能离线。代码很短,很快,比我...
分类:
其他好文 时间:
2014-11-14 17:15:30
阅读次数:
243
题目大意:给出一个森林,每个节点都有一个权值。有若干加边操作,问两点之间路径上的第k小权值是多少。
思路:这题和COT1比较像,但是多了连接操作。这样就只能暴力合并连个树。启发式合并会保证时间复杂度不至于太大。然后就是用可持久化线段树维护一个树的信息,按照dfs序来建树,每个节点的可持久化链的参考版本就是它父亲的版本。之后利用权值线段树可区间加减的特性,用f[x] + f[y] - f[...
分类:
其他好文 时间:
2014-10-21 10:26:39
阅读次数:
265
题目大意:给出一个序列,单点修改,询问区间第k大。
思路:如果不带修改,那么划分树就可以解决,但是划分树是静态的树,不支持修改。带修改的主席舒其实就是外层fenwick套内层权值线段树,但是权值线段树必须动态开节点。然后修改的时候就像树状数组修改那样,每次修改logn个权值线段树。查询的时候也一样,返回logn个权值线段树统计的和。
最后为了求区间第k大,还需要二分答案。
C...
分类:
其他好文 时间:
2014-10-15 18:11:31
阅读次数:
271
题目大意:可修改的区间第k小
这个主席树卡了我两天。。。切掉Count On A Tree 之后我就一直认为带修改的主席树是树状数组套可持久化线段树。。。其实我被误导了。。。
尼玛带修改的主席树和可持久化线段树毛关系都木有啊!!!
那就是动态的权值线段树啊啊啊啊啊啊啊!!!
好吧这里给不明白主席树的孩纸一些简介:
1.外层树状数组
2.里层线段树
3.线段树动态开节点。仅此而...
分类:
其他好文 时间:
2014-10-15 14:06:00
阅读次数:
284