其实是昨日份水题
洛谷P3398 复习一下树上倍增求LCA,判断两条路径a~b,c~d是否有交集。有交集当且仅当一方的LCA在另一方的路径上。先求两个LCA,然后将深度较大的那个LCA和另外一组的两个端点求一组新的LCA,如果新的LCA都不与深度较小的LCA重合,则无交集。
SDOI2011消耗战 第一道虚树,虚树的应用场景是查询的节点总数不大但是无关节点特别多。先考虑dp:一个点所有子节点想和根节点断掉,要么断掉它与所有子树的联系,要么断掉它与根节点的路径上代价最小的一条边。于是产生了很多无关节点。使用虚树把它们排除。对每次查询都重新建立一棵虚树。