zoukankan      html  css  js  c++  java
  • 杂题

    题意

    给定一棵(n)个点的树,每个点有颜色(c_i)
    两条不相交的路径((a,b)(c,d)(均不相同)),满足(c_a=c_b,c_c=c_d)为合法方案
    ((a,b)(c,d)=(c,d)(a,b))
    (q)次询问,每次给定(x),求不以(x)为端点的合法方案
    (n,qle 10^5)

    做法

    对于((a,b)(c,d),在四个点上都统计一次,)(ans_i)(i)作为端点,(Ans=(frac{1}{4}sum ans_i)-ans_x)
    考虑枚举(x,y)(x-y)路径子树内的路径是所有与其不相交的路径

    显然,我们考虑点分治,令(G)为当前点分中心,我们对跨子树的点对 及 (G)与其他点对处理
    (G)与其他点对很好做,我们具体来做跨子树的点对
    (x-G-y)

    • (sum)(G)子节点的(sum f)
    • (h_x)(x-G)路径上(G)的子节点的(f)
    • (g_x):挨着(x-G)路径上的点的(sum f)

    那么((x,y))的答案为:(sum-h_x-h_y+g_x+g_y),这个很简单能维护

  • 相关阅读:
    cp
    usr/sbin/inetd
    mysql
    Iptables的规则语法
    CentOS系统安装过程中配置软RAID-0或RAID-1
    25道shell面试题
    虚拟机
    进入单用户模式
    正则表达式
    js操作div的显隐
  • 原文地址:https://www.cnblogs.com/Grice/p/13334440.html
Copyright © 2011-2022 走看看