始终做完全公开的博客 单调栈,前缀和,RMQ。 <! more <! toc Description 给定长度为$n$的序列:$a_1,a_2,\ldots ,a_n$,记为$a[1:n]$。类似地,$a[l:r](1\le l \le r \le N)$是指序列:$a_l,a_{l+1},\ldo ...
分类:
其他好文 时间:
2018-11-07 14:10:14
阅读次数:
237
思路: 这是ST表模板。遇到一道indeed笔试题需要用这个算法,顺便学习一下。那道题是说给定一个一维数组和一些查询[Li, Ri],要求计算[Li, Ri]区间内子段和的绝对值的最大值。解法是使用ST表计算所求区间内最大前缀和 - 最小前缀和即可。 实现: ...
分类:
编程语言 时间:
2018-11-04 21:18:17
阅读次数:
217
RMQ是询问某个区间的最大值或最小值的问题,主要求解方法之一ST算法; ST算法其实是倍增思想的产物,等下看代码实现就很明显了 ST算法通常用在要多次询问一些区间的最值的问题中,相比于线段树,它的程序实现更简单,运行速度更快; ST算法没有修改操作(或者说不擅长动态修改) ST算法流程: 预处理 : ...
分类:
编程语言 时间:
2018-11-02 23:44:17
阅读次数:
171
题面 也就是说, 随机序列RMQ.($n \le 8388608$, $m \le 8 10^6$) 解法 我写了笛卡尔树+tarjan 然而听神仙说, 因为数据随机, 建完树暴力找lca就行, 跑的飞快...吊打std... 还有题解, 真是神仙做法... 设 p i 表示比 a i 大的前一个数 ...
分类:
其他好文 时间:
2018-11-01 16:13:07
阅读次数:
172
SA写了就忘,SAM根本学不会,没救。 SA模板: ...
分类:
编程语言 时间:
2018-10-24 22:23:35
阅读次数:
194
Problem Description Paul draw a big m*n matrix A last month, whose entries Ai,j are all integer numbers ( 1 <= i <= m, 1 <= j <= n ). Now he selects s ...
分类:
其他好文 时间:
2018-10-18 00:50:06
阅读次数:
185
此题还有LCA+tarjin离线查询做法,详见这里 关于ST表 解决RMQ问题,dp[i][j]表示从第i位开始长度为(1<<j)的区间的最值 维护的时候采用倍增思想,维护dp[i][j+1]=opt(dp[i][j],dp[i+(1<<j)][j]) 查询的时候,两端点为l,r,则长度len=r- ...
分类:
其他好文 时间:
2018-10-17 11:12:11
阅读次数:
177
Description 有一个n个点n条边的有向图,每条边为<i,f(i),w(i)>,意思是i指向f(i)的边权为w(i)的边,现在小A想知道,对于每个点的si和mi。si:由i出发经过k条边,这k条边的权值和。mi:由i出发经过k条边,这k条边的权值最小值。 Description 有一个n个点 ...
分类:
其他好文 时间:
2018-10-14 22:01:26
阅读次数:
274
给出一个有N个数的序列,编号0 - N - 1。进行Q次查询,查询编号i至j的所有数中,最大的数是多少。 例如: 1 7 6 3 1。i = 1, j = 3,对应的数为7 6 3,最大的数为7。(该问题也被称为RMQ问题) 例如: 1 7 6 3 1。i = 1, j = 3,对应的数为7 6 3 ...
分类:
其他好文 时间:
2018-10-14 19:02:27
阅读次数:
161
传送门: "RMQ ST算法" RMQ(Range Minimum/Maximum Query)区间范围最值查询问题 题意 求指定区间值最小的元素 思路 其实就是二分法的思路,统计所有长度为2的非负整数次幂的区间。 然后将所求转化到在包含的几个区间之中寻找最小值。 Online AC Code in ...
分类:
编程语言 时间:
2018-10-10 22:05:10
阅读次数:
149