![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dfs序
seeeagull
这个作者很懒,什么都没留下…
展开
-
[P3703][SDOI2017]树点涂色(dfs序+LCT+LCA+线段树)
首先每次染色都是染一种新颜色,且一定从根开始,所以从根到一个节点的相同颜色都在一段内,不同颜色数即是颜色段数。 所以如果对于每个节点,维护一下它到根节点的不同颜色数,似乎操作2和3都可以求出了。对于操作2,用类似于树上差分的思路,x->y的颜色数=x到根的颜色数+y到根的颜色数-2*lca(x,y)到根的颜色数+1,因为每次都是染新颜色,所以两段的连接处不可能颜色相同,保证这样做是正确的。...原创 2019-05-15 23:27:11 · 121 阅读 · 0 评论 -
[P4175][CTSC2008]网络管理(LCA+树状数组+主席树)
求树上链的带修第k大,跟我上一篇的区间带修第k大其实思路差不多。区别见下。 只要先dfs一遍记录dfs序,就可以看成一个序列了。每个节点对应的线段树要维护从它到根的不同权值个数,所以每个节点会对以它为根的子树产生影响,所以树状数组修改时是区间修改而不再是单点修改。u到v的路径=u+v-lca(u,v)-lca(u,v)的父亲,所以查询时是四个位置一起跳。其他就没什么特别的了。 #includ...原创 2019-05-22 10:03:02 · 118 阅读 · 0 评论