那我们考虑枚举不同的 \operatorname{dis}(u, s) 的情况。我们设从左往右走 i 步到达的最优点称为 R(i),从右往左称为 L(i)。当 \operatorname{dis}(u, s) = i,\operatorname{dis}(s, v) = L - i 时,发现 s 满足
L(i) \leq s \leq R(L - i).
虽然 a \sim R(i) 需要的步数可能不是 i,但是交区间一定满足 \operatorname{dis}(u, s) = i,\operatorname{dis}(s, v) = L - i,要不然 \operatorname{dis} 不是最短路。所以不同的 i 对应的区间不会相交。
现在我们需要统计在所有区间内特殊点的数量,也就是这个式子:
设 \operatorname{cnt}(l, r) 为区间 [l, r] 的贡献,则答案为:
\operatorname{cnt}(a, a) + \operatorname{cnt}(b, b) + \sum_{i=1}^{L-1} \operatorname{cnt}(L(i), R(i)).
前两项直接判断一下,后面的拆成前缀和。令 1 \sim i 的特殊点数量为 \operatorname{sum}(i),则: