学习了一种新的写法。
首先将关键点按照 dfs 序排序,之后两两相邻求 lca,把 lca 加进去之后再排序得到了虚树的 dfs 序列。
lca
题解中有使用欧拉序直接 DP 的方法,但是我想建出树来 DP。
但是写完以后发现只对了 2,10 两个点,其他的全都 T 了,一开始怀疑是每次都清空 vector 的问题,改成每次新开一个 swap 以后还是 T 的。
vector
swap
请问是我的写法有什么问题还是其他的什么地方写假了。
另外在 C++11 之后对 std::vector 的 swap 不是 O(1)\mathcal{O(1)}O(1) 的吗
std::vector