dfs一遍得到每个节点的dfs序,对于要插入的节点x分两种情况考虑:
1,如果x可以在集合中的某些点之间,找到左边和右边距离x最近的两个点,即DFS序小于x的DFS序最大点,和大于x的DFS序最小的点......
2.如果x在集合中的点某一侧,则找距离x的dfs序最小和最大的点
将x插入这个集合最少要走的距离为 dist[x]-dist[LCA(left,x)]-dist[LCA(rig...
分类:
其他好文 时间:
2015-07-22 14:34:13
阅读次数:
95
显然链剖 然而至询问到根的信息,要好些很多(虽然我没那么写)对于安装 查询和维护到根路径对于卸载 查询和维护子树信息因为链剖本身是用dfs序建的线段树,所以使得查询和修改子树非常方便。 1 #include 2 #include 3 #include 4 #include 5 #inclu...
分类:
其他好文 时间:
2015-07-18 09:29:17
阅读次数:
105
看了下noi的水题 然后第一次自己YY出dfs序这个东西(当然以前听别人讲过没写过)然后做了一道dfs序的水题做法:统计出一个点的dfs序,成为pos[i]和以该节点为子树的所有点中pos[i]的最大值en[i]然后用树状数组单点修改区间询问处理可以把询问的过程想象为一次dfs,走到一条边ans++...
分类:
其他好文 时间:
2015-07-17 20:55:05
阅读次数:
128
这道题和bzoj2588很像,是动态区间第K大的变形。先求DFS序,一棵子树的DFS是连续的,不妨记为[l,r],我们维护前缀和,在l处+1,在r+1处-1。变成动态区间第K大的经典问题,用树状数组套线段树。#include#include#include#include#include#inclu...
分类:
其他好文 时间:
2015-07-15 22:30:45
阅读次数:
166
题意:AC通道
题解:
这题有个十分巧妙的解法。
因为有子树修改,而又不是整棵子树的修改,直接上dfs序是不行的。
考虑它每次修改的只有子节点,而且有距离限制,我们想到这是与点的深度有关的问题。
于是我们把树上的点抽象到二维平面上,横坐标为其dfs序,纵坐标为其深度,这样每次的修改就对应一个区域的染色操作,这东西用kdtree可以随便搞,弄个lazytag就可以了。一堆调试用的代码,所以看...
分类:
其他好文 时间:
2015-07-14 13:43:58
阅读次数:
116
这题大家为什么都写O(NlogN)的算法呢?……让本蒟蒻来写一个O(N)的吧……首先还是对BFS序和DFS序重编号,记标好的DFS序为d[1..n]。令pos[x]为x在d[]中出现的位置,即pos[d[i]]=i。然后还是要用到一个BFS序的分段对应一棵树的结论……然后我们考察一个分段方式的合法性...
分类:
其他好文 时间:
2015-07-12 22:55:18
阅读次数:
174
将每个串正着插入Trie A中,倒着插入Trie B中。并求出每个串在A,B中的dfs序。每次查询等价于查询在A中dfs序在[la,ra]之间,在B中dfs序在[lb,rb]之间的串的个数,用主席树维护即可。#includeconst int S=2000010,N=2010,M=N*22;char...
分类:
其他好文 时间:
2015-07-08 20:23:28
阅读次数:
169
给定一棵树,初始时树为空操作1,往某个结点注水,那么该结点的子树都注满了水操作2,将某个结点的水放空,那么该结点的父亲的水也就放空了操作3,询问某个点是否有水我们将树进行dfs, 生成in[u], 访问结点u的时间戳,out[u],离开结点u的时间戳每个结点的in值对应在线段树中的区间的一点那么对于...
分类:
其他好文 时间:
2015-07-06 01:23:10
阅读次数:
110
题意,给你一颗树的bfs序和dfs序,结点编号小的优先历遍,问你可能的一种树形;输出每个结点的子结点。注意到以下事实:(1)dfs序中一个结点的子树结点一定是连续的。(2)bfs,dfs序中的一个结点u的后续结点一定是u或u的后兄弟结点{v},或u和{v}的后代节点{s}。(3)如果有后兄弟结点,那...
分类:
其他好文 时间:
2015-07-05 21:13:14
阅读次数:
91
一开始读错题,各种不会做,后来发现染色只是染孩子……那不就简单了吗……注意这题是允许离线的染色如果没有距离限制,它就是个dfs序距离限制怎么做呢?我们考虑扩展一维变成二维的问题,将每个点变为二维平面上的点(x,y),y=d[x]表示x的深度染色a,距离限制l实际上就是对x∈[l,r],y0 do 3...
分类:
其他好文 时间:
2015-06-30 12:06:35
阅读次数:
168