莫队算法
来源:互联网 发布:智慧足迹数据 编辑:程序博客网 时间:2024/05/16 19:13
这名字···
这个算法是由之前的国家队队长莫涛巨神(Orz….%%%
莫队算法
事实上,莫队算法这种东西,应该叫做——
一个优雅的暴力(引自Alan_Cty)
传说中能解决一切区间问题的算法
如果我们知道区间
有一种经典的问题:给你一些不带修改的区间询问,要求快速回答
显然,有一些我们可以通过线段树来完成,因为线段树是
但是,线段树有的东西是维护不了的。
看一个例子
给你一个数列,若干询问,要求回答区间内同种颜色大小。
线段树很难做,怎么办?
用莫队算法!
莫队算法的实质是通过将询问排序,每个询问均由前一个询问(排序后的)转移得来,通过一定的排序优化时间复杂度。往往可以有
回到题目
显然对于两次询问
把每个询问看作是二维平面上的点,那么我们的最小总时间,就是这些点的最小曼哈顿距离生成树, 按照这个树的顺序做,复杂度变成了
然而这样有一点猥琐
有一个优美方便简洁好理解的替代品
分块大法好!
把整个序列分块,把
为什么要分块不能直接排呢?
分块很好的减少了一种情况的影响。
由于每个块的大小是
分块使得两个询问之间差异平均到了
因此,理论复杂度大约是
带上了修改,怎么办?
然后我们继续分块。
把二元组
然后把
转移时直接恢复(或删除)两次询问之间的修改。如果在区间内还要计算对答案的影响
然而修改的复杂度十分神奇,是
复杂度的证明可以看看a_crazy_czy的博客
有一道板题
http://blog.csdn.net/hzj1054689699/article/details/51880644
- 关于分块算法and莫队算法
- {莫队算法}
- bzoj2038莫队算法
- 莫队算法
- hdu4638莫队算法
- 树上莫队算法
- 莫队算法
- 莫队算法小结
- BZOJ3781【莫队算法】
- BZOJ2038【莫队算法】
- 莫队算法小结
- 莫队算法
- 莫队算法模板
- 莫队算法小结
- 莫队算法
- 莫队算法
- 莫队算法笔记
- 莫队算法
- vi 整行 多行 复制与粘贴
- js join() 方法和splice() 方法 slice() 方法 记一下啦
- string 深入理解字符串
- java 集合 Set
- 使用maven时出现Failure to transfer 错误的解决方法(再次掉入神坑)
- 莫队算法
- RPC框架技术初窥
- 【easyui】禁用元素
- List转换成Tree
- CNN中特征映射层(S2)有特征提取层(C3)特征映射是怎么作用的
- Redis协议
- PHP面向对象特性-多态
- Java_基础—字符流FileWriter
- FZU 2275 Game【博弈】