zoukankan      html  css  js  c++  java
  • 关于lct维护动态生成树问题

    水管局长数据加强版

    题意是要求维护一棵最小生成树,支持删边操作。

    删边操作比较难处理,因为如果删掉树上的边,

    很难从已经有备选集合中找出连接不同联通块的最小的边。

    然而题目并没有要求在线。 所以离线。

    问题由删边转化为加边。

    考虑加的每一条边:

    如果两个点没有联通,直接联通。

    如果两个点已经联通,那么两个点之间存在一条唯一路径。

    加上当前边,会形成一个简单环。

    找出这个简单环上的最大边权,删掉那一条边就可以了。

    实际操作中并没有涉及到简单环,其实是查询两点之间的最大边权,并尝试用当前边替换最大边。

    GERALD07加强版

    一些求联通块问题,比较优秀的解法是:

    形成生成树组成的森林,利用每棵树点数-边数=1的性质,答案为总点数-总边数。

    本题的做法类似数颜色问题的主席树解法:

    从编号为1的边开始尝试插入lct,

    如果已经形成简单环,那么替换掉简单环上编号最靠前的边

    并将该边的前趋设为替换的边,将前趋表示在主席树上。

    每次询问,其实就是问:

    n-区间中有多少用到的边,

    后者查询主席树区间[l,r]内,权值小于l的就可以了。

  • 相关阅读:
    高德地图SDK大致使用
    AFNetworking 使用
    蓝牙相关
    svn 常用命令
    通过AutoLayout显示三个等宽视图
    适配相关 --AutoLayout ---SizeClass
    常用网页
    UIViewController加载过程
    UIApplication相关
    实现消息转发功能(调用非自己类方法)
  • 原文地址:https://www.cnblogs.com/skyh/p/11535590.html
Copyright © 2011-2022 走看看