ST 表是个好东西,虽然前些天 ldq 学长已经讲完啦,但是那天他讲了那么多,让智商受限的我完全没有全部接受,选择性的扔掉了一部分(其实不舍的扔,记不住QAQ). ST 表最简单的应用就是查询区间最大值(或着最小值,这里以最大值为例),它(单纯 ST 表自己)需要你先修改之后(如果有修改要求),得到一个确切数组之后,经过 O ( nlogn ) 的预处理,然后就可以做到 O ( 1 ) 查询啦. ST 表的预处理操作: 对于一个有 n 个数的 a [ n ] ,如果需要用一个二维数组 f [ n…
ST算法介绍:[转自http://blog.csdn.net/insistgogo/article/details/9929103] 作用:ST算法是用来求解给定区间RMQ的最值,本文以最小值为例 方法:ST算法分成两部分:离线预处理 (nlogn)和 在线查询(O(1)).虽然还可以使用线段树.树状链表等求解区间最值,但是ST算法要比它们更快,而且适用于在线查询. (1)离线预处理:运用DP思想,用于求解区间最值,并保存到一个二维数组中. (2)在线查询:对给定区间进行分割,借助该二维数组求最…
前言 学了树状数组看到ST表模板跃跃欲试的时候发现完全没思路,因为给出的查询的时间实在太短了!几乎是需要完成O(1)查询.所以ST表到底是什么神仙算法能够做到这么快的查询? ST表 ST表是一个用来解决RMQ问题(区间最值问题)的有效算法. 它的功能也很简单. O(nlogn)预处理,O(1)查询区间最值. 其他好像真还没什么用了 算法 ST表利用的是倍增的思路来实现的. 怎么说呢,ST表确实很神奇. 拿最大值来说吧... 我们用f[i][j]表示第i个数开始的\(2^j\)个数中的最大值. p…
预备知识 st表(Sparse Table) 主要用来解决区间最值问题(RMQ)以及维护区间的各种性质(比如维护一段区间的最大公约数). 树状数组 单点更新 数组前缀和的查询 拓展:原数组是差分数组时,可进行区间更新,单点查询,当然想区间查询也有办法(维护两个树状数组即可). 区别 树状数组用来维护一个具有区间可减(加)性质的工具,所以可以用来维护区间前缀和. 区间最值不具有区间可减性,所以不能使用树状数组进行维护,而使用st表. st表的思想 初始化 预处理数组, f[x][i] 表示区间[x…
「ZJOI2018」胖(ST表+二分) 不开 \(O_2\) 又没卡过去是种怎么体验... 这可能是 \(ZJOI2018\) 最简单的一题了...我都能 \(A\)... 首先我们发现这个奇怪的图每个点扩展的是一个区间 \([L,R]\),然后我们就可以二分端点了. 一个点 \(x\) 扩展到点 \(y\) 至少要 \(|x-y|\) 的时间,所以我们把 \(a_i\) 排个序,在上面二分一个合法的区间使得 \(|x-a_l|\leq t\) 且 \(|x-a_r|\leq t\) 然后若能扩…
问题引入 先让我们看一个简单的问题,有N个元素,Q次操作,每次操作需要求出一段区间内的最大/小值. 这就是著名的RMQ问题. RMQ问题的解法有很多,如线段树.单调队列(某些情况下).ST表等.这里主要探讨ST表 过程 ST表是一种神奇的算法,它以倍增与二进制为基础,实现区间内最大/小值.话不多说,直接切入正题-- 我们这里以求区间最大值为例. 首先,我们可以用O(\(N lg N\))的时间复杂度预处理出以i开始,接下来2j个元素中的最大值.我们借助递推/DP的思想. for ( int i…
题目背景 这是一道ST表经典题——静态区间最大值 请注意最大数据时限只有0.8s,数据强度不低,请务必保证你的每次查询复杂度为 O(1) 题目描述 给定一个长度为 N 的数列,和 M 次询问,求出每一次询问的区间内数字的最大值. 输入输出格式 输入格式: 第一行包含两个整数 N,M,分别表示数列的长度和询问的个数. 第二行包含 N 个整数(记为 ai ),依次表示数列的第 i 项. 接下来 M 行,每行包含两个整数 li,ri,表示查询的区间为 [li,ri] 输出格式: 输出包含 M行,每行一…
ST表,稀疏表,用于求解经典的RMQ问题.即区间最值问题. Problem: 给定n个数和q个询问,对于给定的每个询问有l,r,求区间[l,r]的最大值.. Solution: 主要思想是倍增和区间dp. 状态:dp[i][j] 为闭区间[i,i+2^j-1]的最值. 这个状态与转移方程的关系很大,即闭区间的范围涉及到了转移方程的简便性. 转移方程:dp[i][j]=max(dp[i][j-1],dp[i+2^(j-1)][j-1]). 这是显然的,但这里有个细节:第一个项的范围为[i,i+2^…
SAP模块一句话入门(专业术语的理解) SAP一句话入门:Financial & Controlling Accounting (FICO) 财务,财务,呵呵,让我们关心一下给我发工资的部门.某皇帝似的人物牛哄哄的语重心长的俯视着对会计们说,不要做假帐啊.按照中国人的不是什么偏要说什么的特点,我们由此可以知道,财务的任务.终极目标就是做假帐.你反驳道,会计不是财务,财务不是会计.我有说吗?我什么都没说.不管假不假,那是高层建筑,是道:可怜我们这帮下苦力的,so professional地.忠诚而…
返回索引目录 原文链接:Hello, Android_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android深入理解 本部分介绍利用Xamarin开发Android应用程序 Hello, Android Deep Dive 在Hello, Android Quickstart(原文,译文)中,我们创建并运行了我们第一个Xamarin.Android应用程序.现在我们对Android应用如何工作进行进一步学习了解,以便于我们开发更加复杂的程序. 在本指南…