圆方树和虚树
圆方树和虚树 例题
圆方树:先用Tarjian找点双,对于每一个点双,构建一个方点(一个虚空点),然后把每个点双上原来的点与这个新构建的方点连边,边上记录该点的信息(如边权,点权等)。
用处:可以把图变成树的同时任然保留原来点的信息。
(个人感觉圆方树就是一种特别的缩点方式)
圆方树是用来解决仙人掌图的问题的,那什么是仙人掌图呢?
即不存在边同时属于多个环的无向连通图是一棵仙人掌。
虚树:虚树的主要思想是:对于一棵树,仅仅保留有用的点,重新构建一棵树,这里有用的点指的是询问点和它们的lca。
构建方法1:单调栈维护。(常数小但容易写挂)
构建方法2:二次排序。(更好理解? 细节见oi-wiki)