基环树的千层套路
基环树的千层套路
基环树就是一棵树上多了一条边,因而形成了一个环。
因为其特殊的性质,很多情况下可以去掉环当成一棵树考虑。
大部分的基环树上的问题,随意删去环上的一条边,仍然可以得到一个可行解,因此最暴力的做法就是把所有边都删掉,对得到的每一棵树找一组最优解,再在找到的所有解中找出最优的。
Luogu P5022 [NOIP2018 提高组] 旅行
然而这样作显然会很慢,因此在一些题中,并不需要将环上每一条边依次删除,而是只删除一条边,再强制选择这条边即可。
同桌的你
若要求一棵基环树的直径,如果采取将环上每条边一次删去的方法显然会很慢,可以用单调队列进行优化,详见这篇博客。
\(passwdispasswditself\)