zoukankan      html  css  js  c++  java
  • 【XR-2】永恒

    【XR-2】永恒

    给定大小为 (n) 的两棵树 (T_1,T_2),以及 (T_1 o T_2) 的一个映射,求:

    [sum_{xin T_1}sum_{yin T_1}sum_{uin T_1}sum_{vin T_1} [u<v][x<y][[u,v]in [x,y]] extrm{dep}_2( extrm{LCA}_2(x,y)) ]

    ( m Sol:)

    先枚举 ((u,v)) 变成:

    [sum_{uin T_1}sum_{vin T_1} [u<v] extrm{dep}_2( extrm{LCA}_2(x,y))sum_{xin T_1}sum_{yin T_1}[x<y][[u,v]in [x,y]] ]

    对于前者考虑点分治加容斥,我们选一个点 (x) 并统计以其为根的答案,那么此时我们只需要统计跨越子树的答案,此时两条不在同一子树内的点对答案可以产生贡献 ( extrm{size}(x) imes extrm{size}(y))

    由于使用点分治+容斥,那么此时我们只需要统计全集的答案,那么将所有点建立虚树,然后在树上差分,使用 LNOI2014 LCA 的技巧,那么我们只需要统计子树权值平方和。复杂度为 (mathcal O(nlog^2 n))

    当然,我们计算的答案是无视了 ((x,y)) 的顺序性的,所以答案需要乘以 (frac{1}{2})

    代码把人写枯了。注意一个细节,我们的贡献是真实树上的 ( m size),不是点分治时的 ( m size...)

  • 相关阅读:
    红帽中出现”This system is not registered with RHN”的解决方案
    消息队列
    安装nmap
    工作后才知道
    虚拟空间测速
    Update 两个表之间数据更新 (转)
    破解
    一步步打造自己的代码生成器
    Table轻松实现报表 转载
    sql使用convert转化
  • 原文地址:https://www.cnblogs.com/Soulist/p/13653948.html
Copyright © 2011-2022 走看看