1 条题解

  • 0
    @ 2025-8-24 22:11:11

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 2huk
    Where should my destinaion be at? 我问我自己。

    搬运于2025-08-24 22:11:11,当前版本为作者最后更新于2024-04-18 13:40:15,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    • 给定一颗 nn 个节点的树。有 mm 个骑士,最开始第 ii 个骑士在 pip_i 节点上,武力值为 fif_i。接下来有 qq 次操作 (ti,xi,yi)(t_i, x_i, y_i)
      • ti=1t_i = 1,输出树上 xi,yix_i, y_i 路径上的前 kk 大骑士的武力值。
      • ti=2t_i = 2pxiyip_{x_i} \gets y_i
      • ti=3t_i = 3fxiyif_{x_i} \gets y_i
    • n,m4×104n, m \le 4 \times 10^4q8×104q \le 8 \times 10^4k20\color{red}k \le 20

    显然需要树链剖分,将树上问题转化成序列上问题。

    发现 kk 很小,所以我们可以用线段树维护前 kk 大,并用 O(k)\mathcal O(k) 的时间复杂度 pushup。

    注意可用 multiset 存储每个叶子节点上的骑士编号和骑士武力值。

    • 1

    信息

    ID
    4473
    时间
    1000ms
    内存
    500MiB
    难度
    6
    标签
    递交数
    0
    已通过
    0
    上传者