欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

[2020多校A层12.1]树(倍增/单调栈/dfs栈)

发布时间:2023/12/4 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 [2020多校A层12.1]树(倍增/单调栈/dfs栈) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

[2020多校A层12.1]树

求解树上从u到v的最长贪心上升序列,也就是只要有比它大的就选择它,可以发现这个问题性质,就是每个点对应了唯一的一个第一个比它大的点,那么我们可以向它们之间连边,然后问题就转化为求解从当前点上面的链中第一个大于c的位置和第一个深度小于dep[v]的位置。然后树上倍增维护即可。

另外我们也可以用单调栈直接处理,将询问离线,然后维护当前点向根这条链的单调栈,然后二分对应位置即可。然后对于回溯需要存储下来弹掉的元素,然后回溯时要加回去。

总结

以上是生活随笔为你收集整理的[2020多校A层12.1]树(倍增/单调栈/dfs栈)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。