1 条题解

  • 0
    @ 2025-10-19 19:00:39

    树上差分 + 贪心 1:预处理 建立树的邻接表,预处理 LCA(最近公共祖先),用于快速求路径,使用倍增法实现 O(log n) 的 LCA 查询

    2:约束处理 对于每个限制 (a_i, b_i):计算 l = LCA(a_i, b_i),使用树上差分标记:sum[a_i] +=1,sum[b_i] += 1,sum[l] -= 2

    3:确定必须反向的边 通过 DFS 计算子树和:如果节点 u 的子树和 sum[u] > 0,说明从 u 到父节点的边必须反向, 因为这些边出现在至少一个限制的路径上,且是阻断路径的关键边

    4:贪心构造 按输入边顺序:如果边被标记为必须反向,则赋 1 否则赋 0(保证字典序最小)

    • 1

    信息

    ID
    3435
    时间
    3000ms
    内存
    521MiB
    难度
    10
    标签
    递交数
    12
    已通过
    1
    上传者