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

感觉这题思路挺妙的。

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

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

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

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

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

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

posted @ 2022-06-14 08:26  wapmhac  阅读(22)  评论(0编辑  收藏  举报