传送门 题意 n个点m条边,q次询问求任意两点之间的距离。(n<=1e5,m<=n+100,所有边权为1,保证图连通)。 思路 这个多出的100多条边就很怪,先考虑如果没有多出边,就只有n-1条边,图连通,那么可以建立最小生成树,用LCA来做,任取一点为根,len[i]为i点到根的距离,dis(u,v) = len[u]+len[v]-2 * len[LCA(u,v)]。思考多出来的边(x,y)对答案有什么影响?两种情况:1.在u到v的最短路上 2.不在u到v的最短路上。如果在最短路上的话,那么可以求出以x和y为源点的单源最短路,dis(u,v) = min(len[u]+len[...