由于路径的深度是升序的所以我们可以考虑用前缀和的思想,用sum维护点到根路径上节点和对于每个点x存在路径和为s即这个点到根的路径上存在y,使sum[x]-sum[y]=s这显然是可以二分的 type node=record po,next:longint; end; ..] of node; q,s,a,p:..] of longint; len,t,n,m,x,y,ans,i:longint; procedure add(x,y:longint); begin inc(len); w[len]…