【题解】 洛谷 P4810 [COCI 2014/2015 #3]STOGOVI
感觉这题思路挺妙的。
历史版本操作?这很主席树。想了半天不知道咋搞,毕竟主席树是维护值域的,这下标操作很难办呐,一看题解,woc,lca?
这题的基本思路是对操作建树,具体怎么建呢?
对于每一个入栈操作 \(a\ \ v\),考虑将新加入的数字 \(i\) 作为 \(v\) 的儿子,这样就可以做到从根节点向下,每一条路径都是某一个版本的栈,为啥这是对的啊?
考虑其实出栈操作不过是将这个版本的栈返回到以前的某个版本,所以就可以直接向 \(fa[v]\) 连一条边。
那操作3呢?就直接求dep[lca]即可。
这种对操作建树的思想值得学习。

浙公网安备 33010602011771号