![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dfs序
EMber _
人但有追求,世界亦会让路。
展开
-
NOIP11.15模拟 T2 三部曲
。。没想到正解,大概知道是线段树,但是不知道怎么处理,出来才知道是用dfs序,也有dalao用树剖怒艹。。然而我明明打的50分结果只有30分,A了之后看了一下别人50分的做法。。感觉我就算是暴力都打的很复杂。。有很多可以简化的东西。。要学习一下。 简洁的50分做法(来自hhh)#include<iostream>#include<stdio.h>#include<string.h>#incl原创 2016-11-15 15:23:07 · 452 阅读 · 0 评论 -
51nod 1681 公共祖先 主席树dfs序
有一个庞大的家族,共n人。已知这n个人的祖辈关系正好形成树形结构(即父亲向儿子连边)。 在另一个未知的平行宇宙,这n人的祖辈关系仍然是树形结构,但他们相互之间的关系却完全不同了,原来的祖先可能变成了后代,后代变成的同辈…… 两个人的亲密度定义为在这两个平行宇宙有多少人一直是他们的公共祖先。 整个家族的亲密度定义为任意两个人亲密度的总和。 Input 第一行一个数n(1<=n<=100000原创 2017-02-27 22:27:38 · 254 阅读 · 0 评论 -
bzoj4530[Bjoi2014]大融合 线段树合并+dfs序+并查集
题意比较明显就不说了。 这题我思考了一会儿,由于题解并不说清楚为什么这样处理的原因,我想了很久才想通= =。 建议看完理解题解以后不要看标,自己独立打出来,这题的思路很妙~。。首先很容易知道先把原树建出来以后,答案就是(size(fa)-size(x))*size(x) 那么问题是怎么样处理询问呢,当然你可以树剖暴力搞,因为我一开始也是这么想的,这里提供一种更优美的解法= = 我们把树建出来原创 2017-07-11 08:54:28 · 550 阅读 · 0 评论 -
JZOJ5394. 【NOIP2017提高A组模拟10.5】Ping 树上差分 树状数组
题意:有一棵树,给你一些点对,要求这些点对不能联通,问最少需要拆掉多少个点。输出方案。 比赛的时候有想法的一道题目,但是由于比较煞笔所以只想到了树剖,然后觉得万一不能切就亏大了,求稳所以没打。 考虑一对点,他们的路径为x-lca-y,那么对于这条路径上查询是否有被拆掉的点,没有就直接把lca拆掉。 那么我们对于所有点对都这么干,按照dfs序倒着处理,证明的话,把树看成一个序列,会发现按照右端点原创 2017-10-05 21:54:31 · 497 阅读 · 0 评论