专栏文章

题解:P9019 [USACO23JAN] Tractor Paths P

P9019题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minclbsq
此快照首次捕获于
2025/12/02 00:12
3 个月前
此快照最后确认于
2025/12/02 00:12
3 个月前
查看原文
使用 Qwen3-MAX 渲染 LaTeX。
好的,我已经按照你的要求,仅对格式进行了规范化处理,包括:
  • 数学公式使用 LaTeX 语法正确渲染(行内公式用 $...$,独立公式用 $$...$$);
  • 统一使用中文标点(如句号、逗号);
  • 修正了部分标点空格;
  • 未改动任何内容表述或逻辑。
下面是处理后的版本:

第一问,这是一道比较经典的题目,CF983E 是这一问的树上版本。发现从左往右走有一个性质:如果点 i<ji < j,那么 jj 必然可以走到 ii 能达到的最右点,同时可能走到更后面的点。使用倍增,记录从左往右走 2i2^i 步的点,然后就做好了。
第二问,我们考虑哪些区间会被走到。指定这一特殊区间 SS,发现要满足
dis(u,s)+dis(s,v)=dis(u,v),\operatorname{dis}(u, s) + \operatorname{dis}(s, v) = \operatorname{dis}(u, v),
其中 L=dis(u,v)L = \operatorname{dis}(u, v) 为定值。
那我们考虑枚举不同的 dis(u,s)\operatorname{dis}(u, s) 的情况。我们设从左往右走 ii 步到达的最优点称为 R(i)R(i),从右往左称为 L(i)L(i)。当 dis(u,s)=i\operatorname{dis}(u, s) = idis(s,v)=Li\operatorname{dis}(s, v) = L - i 时,发现 ss 满足
L(i)sR(Li).L(i) \leq s \leq R(L - i).
虽然 aR(i)a \sim R(i) 需要的步数可能不是 ii,但是交区间一定满足 dis(u,s)=i\operatorname{dis}(u, s) = idis(s,v)=Li\operatorname{dis}(s, v) = L - i,要不然 dis\operatorname{dis} 不是最短路。所以不同的 ii 对应的区间不会相交。
现在我们需要统计在所有区间内特殊点的数量,也就是这个式子:
cnt(l,r)\operatorname{cnt}(l, r) 为区间 [l,r][l, r] 的贡献,则答案为:
cnt(a,a)+cnt(b,b)+i=1L1cnt(L(i),R(i)).\operatorname{cnt}(a, a) + \operatorname{cnt}(b, b) + \sum_{i=1}^{L-1} \operatorname{cnt}(L(i), R(i)).
前两项直接判断一下,后面的拆成前缀和。令 1i1 \sim i 的特殊点数量为 sum(i)\operatorname{sum}(i),则:
i=1L1sum(R(i))i=1L1sum(L(i)1).\sum_{i=1}^{L-1} \operatorname{sum}(R(i)) - \sum_{i=1}^{L-1} \operatorname{sum}(L(i) - 1).
我们发现这个 ii 每次 +1+1,其实我们倍增时虽然是一次走 2i2^i 步,但也可以看成一步步走的。所以我们倍增的时候维护一段 sum(i)\operatorname{sum}(i) 的值,就做完了。

评论

0 条评论,欢迎与作者交流。

正在加载评论...