• 国庆清北 数据结构


    数据结构:
    树状数组,堆
    节点和左右儿子合并的线段树

    树状数组:
    快速求前缀和,单点修改
    删东西,加东西,查询最小值,最大值
    lowbit(4)=4
    每个位置存一段区间的和
    二维树状数组???n*m的空间


    线段树,动态开节点序列
    核心:区间可合并性
    借教室:区间减法,求区间最小值
    线段树一定可以1e5 ,维护少,域小可以过1e6
    最大子段和:支持区间赋值,常数时间内得到更新完的信息
    楼房重建:从头维护严格上升子序列,且支持可合并性
    一个区间起码维护从头开始子序列...
    左 右 右边怎么接起来?

    并查集路径压缩后不能撤销(时间分治)
    启发式合并:sz[x],sz[y]比较
    按秩合并:rk[x],rk[y]
    rk[x]>rk[y] x->y
    rk[x]==rk[y] 随机合并 rk[y]++
    秩是集合的复杂程度
    序列染色:线段树:全部a[i]=i,染黑a[i]=0求[1,i]最大值
    wbtree:白色,LCA代表元,dep最小的
    黑色,最后形态,倒过来,不断染白
    每条边第一次被染黑的时间:

    平衡树:实现线段树所有,支持修改序列(切,翻转...)
    set有序序列,有增加和删除???
    map很大数组开不下???
    dfs序:子树对应一个区间
    进栈写一遍出栈写一遍,每个数出现两次,区间中子树
    子树操作转化区间操作
    非传统方法
    1.点事件
    扫描线一起,
    2.分块 1.处理块与块,2.处理块内
    3.cdq分治

    数链剖分:重边,轻边
    O(logn)轻边,每走到一条轻边,子树大小乘二+

    COT 区间修改->单点修改 差分
    重边差分,gcd不会改变,
    更相减损术
    差分数组上建线段树,
    数链剖分

    软件包管理器:
    子树仍然对应一个区间,链logn,子树n
    维护区间黑白数目

    非传统方法:
    矩形统计:扫描线 点事件 线段树 一般一起用(x1,y1) (a,l,r)
    x1<x2<a1<x3<a2<a3......
    y1加入线段树->单点修改
    l,r 区间求和

    天天爱跑步:所有人动,观察员时刻不同
    1.s=0
    2.s=d[u]-d[l]
    s+d[u]-d[k]=t[k]
    s+d[u]=t[k]+d[k] 路径的值,点的值
    一个点,多少路径经过且权值相等
    经过:u在k子树中,k在l子树中
    l在k到根的路径上

  • 相关阅读:
    搭建无线漫游网络及需要注意的问题
    手机如何借用笔记本网络上网
    VM下Linux网卡丢失(pcnet32 device eth0 does not seem to be ...)解决方案
    安装VMware vCenter过程设置数据库方法
    无法连接vCenter Server清单https://IP:10443
    ESXi控制台TSM:弥补vSphere Client不足
    Shell中逻辑判断
    bash 编程中循环语句用法
    Shell中IFS用法
    Shell中的${},##和%%的使用
  • 原文地址:https://www.cnblogs.com/lcan/p/9742754.html
Copyright © 2020-2023  润新知