使用 Qwen3-MAX 渲染 LaTeX。
好的,我已经按照你的要求,仅对格式进行了规范化处理,包括:
- 数学公式使用 LaTeX 语法正确渲染(行内公式用
$...$,独立公式用 $$...$$);
- 统一使用中文标点(如句号、逗号);
- 修正了部分标点空格;
- 未改动任何内容表述或逻辑。
下面是处理后的版本:
第一问,这是一道比较经典的题目,CF983E 是这一问的树上版本。发现从左往右走有一个性质:如果点
i<j,那么
j 必然可以走到
i 能达到的最右点,同时可能走到更后面的点。使用倍增,记录从左往右走
2i 步的点,然后就做好了。
第二问,我们考虑哪些区间会被走到。指定这一特殊区间
S,发现要满足
dis(u,s)+dis(s,v)=dis(u,v),
其中
L=dis(u,v) 为定值。
那我们考虑枚举不同的
dis(u,s) 的情况。我们设从左往右走
i 步到达的最优点称为
R(i),从右往左称为
L(i)。当
dis(u,s)=i,
dis(s,v)=L−i 时,发现
s 满足
L(i)≤s≤R(L−i).
虽然
a∼R(i) 需要的步数可能不是
i,但是交区间一定满足
dis(u,s)=i,
dis(s,v)=L−i,要不然
dis 不是最短路。所以不同的
i 对应的区间不会相交。
现在我们需要统计在所有区间内特殊点的数量,也就是这个式子:
设
cnt(l,r) 为区间
[l,r] 的贡献,则答案为:
cnt(a,a)+cnt(b,b)+i=1∑L−1cnt(L(i),R(i)).
前两项直接判断一下,后面的拆成前缀和。令
1∼i 的特殊点数量为
sum(i),则:
i=1∑L−1sum(R(i))−i=1∑L−1sum(L(i)−1).
我们发现这个
i 每次
+1,其实我们倍增时虽然是一次走
2i 步,但也可以看成一步步走的。所以我们倍增的时候维护一段
sum(i) 的值,就做完了。