zoukankan      html  css  js  c++  java
  • 分块笔记-根号平衡

    利用分块结构,我们可以进行根号平衡,在特殊的情况下可以优化复杂度,如平衡修改和查询的复杂度

    (O(sqrt{N}))单点修改,(O(1))查询区间和

    • 首先思考(O(N))单点查询(O(1))查询区间和(这是重要的思考方式),我们可以维护一个前缀和数组
    • 同样的,在块内,快外分别维护前缀和,每次修改更新(sqrt{N})个前缀和,每次查询就把块内快外的前缀和加起来就行了

    (O(1))单点修改,(O(sqrt{N}))查询区间和

    • 维护块内和,每次修改块内和和该位置的值

    (O(sqrt{N}))区间加,(O(1))查询单点值

    • 直接分块,在块上大区间加标记

    (O(1))区间加,(O(sqrt{N}))查单点

    • 维护差分数组即可

    (O(1))插入一个数,(O(sqrt{N}))查询第k小

    • 值域分块,维护区间加

    (O(sqrt{N}))插入一个数,(O(1))查询第k小

    • 仍然用值域分块,维护每个数在那个位置,保证每个块内为(sqrt{N})个元素(最后一个除外)并有序
    • 每次查询修改(sqrt{N})个值的所在块
    • 查询时定位位置即可
  • 相关阅读:
    代码分层之模拟servlet调用dao
    Request对象和Response对象
    jquery-动画
    jquery-easyui
    phpcms
    Ajax做分页
    phpcms安装
    cms替换主页的步骤
    php 复习
    登录验证——————生成随机数
  • 原文地址:https://www.cnblogs.com/hangzz/p/13257442.html
Copyright © 2011-2022 走看看