【题解】 洛谷 P4810 [COCI 2014/2015 #3]STOGOVI

感觉这题思路挺妙的。

历史版本操作?这很主席树。想了半天不知道咋搞,毕竟主席树是维护值域的,这下标操作很难办呐,一看题解,woc,lca?

这题的基本思路是对操作建树,具体怎么建呢?

对于每一个入栈操作 a  v,考虑将新加入的数字 i 作为 v 的儿子,这样就可以做到从根节点向下,每一条路径都是某一个版本的栈,为啥这是对的啊?

考虑其实出栈操作不过是将这个版本的栈返回到以前的某个版本,所以就可以直接向 fa[v] 连一条边。

那操作3呢?就直接求dep[lca]即可。

这种对操作建树的思想值得学习。

posted @   wapmhac  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示