zoukankan      html  css  js  c++  java
  • 区间数据结构及其特点

    1.线段树:
    时间复杂度O(logn)【建树时间复杂度O(nlogn)】
    优势:能够处理区间问题(维护区间)
    劣势:写法繁杂,空间消耗高,对区间众数问题难以实现,N^2是无法逾越的障碍(参考小z的袜子)
    2.树状数组:
    时间复杂度O(logn)
    优势:写法简单,空间消耗少(没有保存l,r的值)
    劣势:只能够维护前缀和/积/最大最小
    变形应用:
    求后缀和,利用差分数组实现、还可以用差分数组来求区间和代替线段树
    https://blog.csdn.net/wzw1376124061/article/details/73113297
    3.RMQ:
    ST(稀疏表),时间复杂度O(n*logn)
    优势:如果不进行修改操作的话,ST的效率会更高(相比于线段树来说)
    劣势:有修改操作,会降低时间复杂度,这与ST表的形成有关,ST表的建立设计了动态规划算法
    4.莫队算法:
    时间复杂度O(n^(3/2))
    优势:用以求解区间众数问题,特点是一种离线算法,所以,一定要以某种顺序对输入的查询区间进行排序
    劣势:难以理解
    ----------------------------
    莫队算法的一些变形:
    1.树上莫队
    2.草丛莫队
    3.带修改莫队

    莫队算法的两种写法:
    *1.分块+排序
    2.曼哈顿+最小生成树


    一些莫队题目:
    http://www.codeforces.com/contest/620/problem/F
    http://www.codeforces.com/contest/617/problem/E
    http://codeforces.com/contest/633/problem/H
    小z的袜子
    http://acm.hdu.edu.cn/showproblem.php?pid=3874
    -----------------------------
    HDU 3874第一道莫队题
    -----------------------------
    莫队时间复杂度的解释:
    https://zhuanlan.zhihu.com/p/25017840
    -----------------------------
    莫队的数据上限;
    n=1e5,m=1e6

  • 相关阅读:
    2.1 Python介绍
    2.2 Python基础知识
    内网渗透的一些工具和平台汇总
    ABC技术落地_成功带动lot物联网行业、金融科技行业、智能人才教育。
    舆情、网络舆情、舆情分析
    XSSer:自动化XSS漏洞检测及利用工具
    10款开源安全工具
    系统管理员资源大全,学习学习学习(转载)
    如何搭建邮件服务器
    域名常见名词解释
  • 原文地址:https://www.cnblogs.com/JJsnow/p/9968759.html
Copyright © 2011-2022 走看看