树状数组
区间和很方便线段树
建树、查询、更新、扫描线、求逆序数(正序数)、主席树dfs、bfs
奇异序列
如果一个序列中,任意两个相邻的数之间的差值为1,且这个序列的第一个数是0的话,xyb就将它定义为奇异序列。也就是说,奇异序列满足如下条件:
1.对于任意的k(1<=k< n),|a[k]-a[k+1]|=1;
2.a[1]=0。
例如:0,1,0,-1,-2,-3就是个n=6的奇异序列。
- 最近公共祖先(Lowest commom ancestor)tarjan算法
找a,b两点的lca
深搜、在找到a或b时开始记录祖先(并查集) 这里不妨取a、一个祖先遍历完后,如果没有发现b,递归到上一个祖先,记录,遍历……直到找到b,此时的lca就是find(a),因为更高层的祖先还没递归回去(还没加入并查集)。
可以据此找到一棵树中两点间的最短距离。