对于询问(x,y),恰经过一条非树边且不经过树上两点间路径的路径数为: ·若x与y成祖先-孩子关系,假设y是x的祖先,z是y到x方向的第一个节点,则 ans=起点在x的子树里,且终点不在z的子树里的非树边数 ·若x与y不成祖先-孩子关系,则 ans=起点在x的子树里,且终点在y的子树里的非树边数 由于不经过任何非树边也有一解,所以答案要加1 求出DFS序后线段树合并即可解决 #include<cstdio> const int N=100010,BUF=10500100; int n,m,i,…