仙人掌树其实没有看上去的那么高深
它,说白了只不过是一棵带环的树(这概念仅限在蒟蒻我的眼里,可能不太准确)。
当然环与环之间不能共边是仙人掌树的游戏规则
如果去掉所有的环,它就是普普通通的一棵树,可以进行任何我们想做的基本操作。
但正是由于它带环的性质,导致基本的操作无法正常进行。
那怎么办?
运用我们熟悉的等效替代法
什么意思?
——如果我们整体性地研究,并且把整个环当作一个点来处理不影响结果,那么我们可以直接把环当作一个点,这样带环的树就是一棵普通的树。
但是这样仙人掌树和普通树又有什么区别呢?
所以我们研究环内部分的时候就要多处理一些东西,保持环的性质,使得无论在外部合适内部看来,整棵树都是合法的。
与其说仙人掌树是一种算法。倒不如说它是处理一类问题的方式。因为解决问题的核心算法可能是LCA、平衡树、单调队列等等,仙人掌树的作用则是用了一种等效替代的思维方式在这些算法遇到带环树的困窘时,巧妙地把问题化繁为简,让解决问题的方式重新成为普普通通的操作。