1 条题解

  • 0
    @ 2025-8-24 23:06:26

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Lgx_Q
    变强不如变菜

    搬运于2025-08-24 23:06:26,当前版本为作者最后更新于2024-11-22 09:08:30,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    n,q400n, q\le 400

    考虑对于每一天,枚举 ziz_i 表示选择的城市,然后 O(n)\mathcal O(n) 在树上求出 xizix_i \to z_iziyiz_i \to y_i 两条路径的长度,时间复杂度 O(n2q)\mathcal O(n^2 q),期望得分 16pts\mathtt {16pts}

    n,q2000n, q\le 2000

    预处理,枚举城市 pp,在树上 DFS 一遍求出所有路径 pqp \to q 的长度,即可做到 O(n2+nq)\mathcal O(n ^ 2 + nq),期望得分 32pts\mathtt {32pts}

    n2×105n\le 2\times 10^5q3q\le 3

    考虑使用树上倍增求出路径长度,时间复杂度 O(nqlogn)\mathcal O(nq\log n),期望得分 40pts\mathtt {40pts}

    n2000n\le 2000q2×105q\le 2\times 10^5

    此时要求我们不能直接枚举 ziz_i,考虑直接求出所有可能的 (x,y)(x, y) 的答案。枚举 xx 为根,DFS 一遍树,设 fyf_y 表示 xyx\to y 路径上选择一个 zz 的最优答案。考虑两种情况:

    • zzyy 子树内,此时可以直接树形 DP 求出。

    • zzyy 子树外,考虑 z,yz, y 两点的最近公共祖先 cc,可以先让 zz 走到 cc,再从 cc 走到 yy。具体的,先进行一次树形 DP,再从上到下更新一遍(也可以理解为换根 DP)。

    时间复杂度 O(n2+q)\mathcal O(n^2 + q),小常数 O(nq)\mathcal O(nq) 做法可能也可以过这一档分。期望得分 52pts\mathtt {52pts}

    特殊性质 C

    11 为根,进行换根 DP 即可。

    时间复杂度 O(n+q)\mathcal O(n + q),加上之前的做法,期望得分 76pts\mathtt {76pts}

    n,q2×105n,q\le 2\times 10^5

    考虑对于每个点求出 $d_u = \max\limits_{v = 1} ^ n \{c_v - 2\cdot\text{dist} (u, v)\}$,其中 dist(u,v)\text{dist} (u, v) 表示 u,vu, v 两点在树上的距离。可以类似特殊性质 C 的做法,换根求出。

    考虑路径 xiyix_i \to y_i 以及 ziz_i 的关系,找到 ziz_i 走到路径 xiyix_i \to y_i 时的第一个点 uu,那么 dud_u 即计算到了 ziz_i 的答案。

    所以,总答案应为 $c_{x_i} + c_{y_i} + \max\limits_{u \in \{x_i \to y_i\}} d_u$,可以树上倍增求出一段路径的 dud_u 的最大值,时间复杂度 O((n+q)logn)\mathcal O((n + q)\log n),期望得分 100pts\mathtt{100pts}

    • 1

    信息

    ID
    10831
    时间
    2000ms
    内存
    512MiB
    难度
    5
    标签
    递交数
    0
    已通过
    0
    上传者