ST表类似树状数组,线段树这两种算法,是一种用于解决区间最值查询问题的离线算法。与线段树相比,预处理复杂度同为O(nlogn),但查询复杂度ST表为O(1),比线段树查询O(lgN)小,但就不涉及修改的区间查询而言,ST表无疑是更好的选择。 ST表主体,即st[i][j],表示数据数组a[ ]从下标 ...
                            
                            
                                分类:
其他好文   时间:
2019-08-23 00:09:44   
                                阅读次数:
80
                             
                    
                        
                            
                            
                                    散步的时候yy区间最值的不同分块做法,发现单点修改$O(\sqrt{n})$查询$O(1)$的做法不是很会? 于是yy了一个奇怪做法,写出来看看。 考虑查询的时候两端的散点可以用前后缀最值查出来,所以只需要考虑中间的块。 中间这些块似乎比较恶心,不知道怎么做。 于是我们把每一个块的最值拎出来作为一个 ...
                            
                            
                                分类:
其他好文   时间:
2019-08-22 23:36:18   
                                阅读次数:
96
                             
                    
                        
                            
                            
                                    [TOC] 树上数据结构——LCT 概述 LCT是一种强力的树上数据结构,支持以下操作: 1. 链上求和 2. 链上求最值 3. 链上修改 4. 子树修改 5. 子树求和 6. 换根 7. 断开 树上一条边 8. 连接 两个点,保证连接后仍然是一棵树。 基本概念 LCT是对树的 实链剖分 ,即把所有 ...
                            
                            
                                分类:
其他好文   时间:
2019-08-22 00:44:43   
                                阅读次数:
84
                             
                    
                        
                            
                            
                                传送门:P3942 这道题要求我们对所有长度为m的序列,找出其中最大值和最小值的差值不超过c的,并输出它们的起始位置。 看到静态序列最值问题,很自然的想到要用ST表进行Θ(nlogn+n)预处理、Θ(1)查询。但是很不幸,如果直接用两个表分别存储最大值和最小值,最后一个点妥妥的MLE,因此我们需要对 ...
                            
                            
                                分类:
其他好文   时间:
2019-08-20 21:49:43   
                                阅读次数:
87
                             
                    
                        
                            
                            
                                ST算法是求解RMQ问题的好方法,可以在0(NlogN)的预处理后实现O(1)的查询。该算法是在倍增的思想基础上实现的,比较基础,理解起来也不难。 补充几个要点: RMQ问题:即区间最值问题,给出一个序列a,要求求出区间[l,r]内的最大值。 倍增:(来自lyd的蓝书) log2(x)函数:返回$l ...
                            
                            
                                分类:
编程语言   时间:
2019-08-20 14:05:03   
                                阅读次数:
92
                             
                    
                        
                            
                            
                                开源世界有许多优秀的开源项目,我选取其中十个最优秀的、最轻量级的C语言的项目,希望可以为C语言开发人员提供参考。 十个最值得阅读学习的C开源项目代码 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测 ...
                            
                            
                                分类:
编程语言   时间:
2019-08-13 15:08:20   
                                阅读次数:
123
                             
                    
                        
                            
                            
                                    链接:P3865 st表是一个用来解决RMQ问题的表 st表是一个二维数组,表示的是i~i+2^j-1范围的最值 (这东西和区间DP好像) 初始化: 因为2^0=1; 所以说st[i][0]存的就是i~i范围的最值(就是他自己) for(int i=1;i<=n;++i){ cin>>st[i][0 ...
                            
                            
                                分类:
其他好文   时间:
2019-08-11 18:55:37   
                                阅读次数:
84
                             
                    
                        
                            
                            
                                    概述 堆是一颗完全二叉树。分为大根堆(父节点>=所有的子节点)和小根堆(父节点<=所有的子节点)。 插入、删除堆顶都是O(logN),查询最值是O(1)。 完全二叉树(Complete Binary Tree) 若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数, ...
                            
                            
                                分类:
其他好文   时间:
2019-08-11 16:57:08   
                                阅读次数:
97
                             
                    
                        
                            
                            
                                RMQ算法全称为(Range Minimum/Maximum Query)【区间最值】 主要是这两种算法解决区间最值问题:线段树和稀疏表(Sparse Table) ST算法是解决RMQ(区间最值)问题,它能在O(nlogn)的时间预处理,然后O(1)回答。 其原理是倍增,f[i][j]表示从i位起 ...
                            
                            
                                分类:
其他好文   时间:
2019-08-09 17:36:42   
                                阅读次数:
100