inline int psum(int u,int v){
int res=0;
while(top[u]!=top[v]){
if(dep[top[u]]<dep[top[v]]) swap(u,v);
res+=query(dfn[u],dfn[top[u]],1,n,1);
res%=mod;
u=fa[top[u]];
}
if(dep[u]>dep[v]) swap(u,v);
res+=query(dfn[u],dfn[v],1,n,1);
res%=mod;
return res;
}
这是我的路径求和的代码,第五行 dfn[u] 和 dfn[top[u]] 写反了,但是却 AC 了。
是我对树剖的理解不透彻吗?求解答。
(还是说是数据过水)