zoukankan      html  css  js  c++  java
  • UOJ#207. 共价大爷游长沙

    UOJ#207. 共价大爷游长沙

    给定一棵树和一个集合 (S)(S) 内部为若干个点对 ((x,y)),定义一条边合法当且仅当对于所有 (x o y) 的路径,其被所有点经过。

    支持如下操作:

    1. 删除一条边,然后插入一条边,保证仍是一棵树。
    2. (S) 中加入 ((x,y)) 点对。
    3. 删除点对 ((x,y))
    4. 查询 (x o y) 的边是否合法。

    ( m Sol:)

    草,太强了。

    随机化nb!

    本质上只需要统计,(x o y) 的子树中,是否有所有的端点,且不存在一对点都在子树内。

    然而由于删边和加边的操作会导致这个性质改变,所以我们考虑一个非常 nb 的东西,异或,他可以抵消。

    所以对于每对点,我们附加一个随机的权值,然后统计子树异或和即可。

    具体通过 LCT 维护,复杂度 (mathcal O(nlog n))

  • 相关阅读:
    htop命令使用详解
    三月江南
    linux下文本三剑客之sed
    linux下五种查找命令
    Spring MVC 全局异常处理&文件上传
    About Spring MVC
    JSP
    java多线程
    Java中map接口 遍历map
    log4j
  • 原文地址:https://www.cnblogs.com/Soulist/p/13653627.html
Copyright © 2011-2022 走看看