赛中一直没有想明白,怎么向上查询到其他子树的满足条件数,于是一直在乱调其实,只需要向上倍增到满足符合的节点,然后从这个节点开始查询。大家伙好像用主席树用的比较多,(主席树还不太会...呜呜),这边讲一下线段树的做法首先,数显剖分将这颗树映射到数组中,简单的两个dfs,同时记录每个节点的前置节点,倍增的思想,其实我刚刚才学会,之前LCA都是用树链的,有机会多找人家问问。 void dfs1(int u,int pre){ Size[u] = 1; fa[u][0]=pre; for(int i=1;i<20;i++) fa[u][i] = fa[fa[u][i-1]...