奇怪的知识又增加了呢!
今天,我们来讲一下欧拉序的一个神奇的用处——求解LCA,这个神奇的方法求LCA有什么神奇的好处呢?它的预处理操作是
的,但是查询操作是O(1)的。
好了,直入主题,首先,怎样求解欧拉序呢?

这幅图的欧拉序为:A - B - D - B - E - G - E - B - A - C - F - H - F - C - A
很显然的,我们能发现,任意两点之间的路径一定存在于两点欧拉序之上,那么,很直白的,这条路径上的深度最浅的点不就是他们的LCA结点了嘛?连续区间段的最值问题求解,可以用数据结构来维护一下。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include