算法
文章平均质量分 78
LQ_double
这个作者很懒,什么都没留下…
展开
-
高级的暴力(一)——分块
在某大佬的帮助下我今天get到了分块简单来说分块就是可以把块分成某些奇怪的大小,使之达到优秀的复杂度。but我现在只会把块分成根号大小,然后我们修改一个点的信息时就可以顺便修改次点所在块的信息(O(1))。接着当我们查询[L,R]这段区间,的时候,对于中间的大块可以直接拿来用,对于两边不完整的块则直接暴力查询(都是根号n,)。差不多就这样,最后附上DCOJ 1324用分块过的代码原创 2016-10-14 21:37:48 · 460 阅读 · 0 评论 -
RMQ算法
1. 概述RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j算法。当然,该问题也可以用线段树(也叫区间树)解决,算法复杂度为:O(N)~O(logN),这里我们暂不介绍。2.RMQ算法对于该问题,最容易想到的解决方案是遍历,复杂度是O(n)。但当数据量转载 2016-10-15 14:54:25 · 213 阅读 · 0 评论 -
tarjan算法
说到以Tarjan命名的算法,我们经常提到的有3个,其中就包括本文所介绍的求强连通分量的Tarjan算法。而提出此算法的普林斯顿大学的Robert E Tarjan教授也是1986年的图灵奖获得者(具体原因请看本博“历届图灵奖得主”一文)。 首先明确几个概念。强连通图。在一个强连通图中,任意两个点都通过一定路径互相连通。比如图一是一个强连通图,而图二不是。因转载 2016-10-08 14:37:31 · 238 阅读 · 0 评论