ST表学习
啊谈不上学习了。复习一下原理留一下板子。
$f\left[i,j \right]$表示以$i$为起点,区间长度为${2}^{j}$的区间最值。以最小值为例,即
$min\left(a\left [ k \right ] | i\leq k\leq i+2^{j}-1\right)$
递推式就是倍增思想,为均分的两段区间的最值。即
$min\left(f\left[i,j-1\right],f\left[i+2^{j-1},j-1\right ]\right)$
预处理复杂度$O\left(nlog_{2}n\right )$
如果询问$L$到$R$区间的最值,它等于两段覆盖它的区间的$min$,即
$min\left(f\left[l,k\right],f\left[r-2^{k}+1,k\right]\right),k=log_{2}\left(R-L+1\right)$
求解的时候是$O\left(1\right )$回答的。
我用了全篇$LaTeX$公式,好无聊啊。。。。
板子
int f[N][],p[];
void ST(){
p[]=;
for(int i=;i<=;i++)
p[i]=p[i-]<<;
for(int i=;i<=n;i++)
f[i][]=x[i];
for(int j=;j<=;j++)
for(int i=;i+(<<j)-<=n;i++)
f[i][j]=max(f[i][j-],f[i+p[j-]][j-]);
}
ST表学习的更多相关文章
- ST表学习笔记
ST表是一种利用DP思想求解最值的倍增算法 ST表常用于解决RMQ问题,即求解区间最值问题 接下来以求最大值为例分步讲解一下ST表的建立过程: 1.定义 f[i][j]表示[i,i+2j-1]这个长度 ...
- ST表学习总结
前段时间做16年多校联合赛的Contest 1的D题(HDU 5726)时候遇到了多次查询指定区间的gcd值的问题,疑惑于用什么样的方式进行处理,最后上网查到了ST表,开始弄得晕头转向,后来才慢慢找到 ...
- ST 表学习
作用:ST算法是用来求解给定区间RMQ的最值,本文以最小值为例 举例: 给出一数组A[0~5] = {5,4,6,10,1,12},则区间[2,5]之间的最值为1. 方法:ST算法分成两部分:离线预处 ...
- S-T表学习笔记
$O(nlogn)$构造$O(1)$查询真是太强辣 然而不支持修改= = ShØut! #include<iostream> #include<cstring> #includ ...
- 平衡的阵容 st表学习
模板 预处理 void rmq_isit() { ;i<=n;i++) mx[i][]=mn[i][]=a[i]; ;(<<j)<=n;j++) ;i+(<<j)- ...
- GCD(st表+二分)
GCD Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submis ...
- ST表入门学习poj3264 hdu5443 hdu5289 codeforces round #361 div2D
ST算法介绍:[转自http://blog.csdn.net/insistgogo/article/details/9929103] 作用:ST算法是用来求解给定区间RMQ的最值,本文以最小值为例 方 ...
- [学习笔记]ST表
ST表 给定一个数列$a,O(nlogn)$预处理,$O(1)$查询数列在区间$[l,r]$的最值. 本文介绍求最大值. 实现 预处理 $st[i][j]$表示$max\{a_k\}(k\in[i,i ...
- 算法学习 - ST表 - 稀疏表 - 解决RMQ问题
2017-08-26 21:44:45 writer:pprp RMQ问题就是区间最大最小值查询问题: 这个SparseTable算法构造一个表,F[i][j] 表示 区间[i, i + 2 ^ j ...
随机推荐
- zookeeper的几种使用场景
1.数据的发布与订阅 通过发布与订阅实现配置的信息的统一管理,主要采用zk节点可以存储数据的特性,我们可以将一些配置信息存放到某一节点上,订阅这个节点的服务就可以动态的获取这个节点的数据.在应用启动的 ...
- OpenCV-3.4.2基于Qt-5.10.1的编译
OpenCV-3.4.2基于Qt-5.10.1的编译 由于本人在使用CMake和MinGW编译OpenCV是遇到了很多问题,在这里记录下来.至于所需软件的安装和相应环境变量的设置,网上有很多详细的教程 ...
- oracle 11g expdp impdp详细使用方法
11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法如下图: 二.oracle10g以后提供了expdp/impdp工具,同样可以解决此问题 1.导出expdp工具使用方法: ...
- javascript当中的无限分类
var data = [ {id:100000, name :"1", pid :0}, {id:100100, name :"1-1", pid :10000 ...
- Android(java)学习笔记67:Android Studio新建工程中的build.gradle、settings.gradle
随着信息化的快速发展,IT项目变得越来越复杂,通常都是由多个子系统共同协作完成.对于这种多系统.多项目的情况,很多构建工具都已经提供了不错的支持,像maven.ant.Gradle除了借鉴了ant或者 ...
- 0001-BUGIFX-Magento-Zend-Framework-1-PHP5.6.patch
It is from the full Github-Gist: Bugfix for Zend Framework 1 in Magento (>= 1.7..) + PHP 5.6 http ...
- 2018.7.19 . php复习
PHP程序设计 1.请写出HTML标记meta的完整英文单词:metadata 2.相当于http文件头作用(向浏览器传回正确和精确地显示网页内容的消息)的meta标记的属性是http-equiv 3 ...
- matlab 大块注释和取消注释的快捷键
matlab 大块注释和取消注释的快捷键 注释:Ctrl+R 取消注释:Ctrl +T
- Spring整合JUnit spring静态对象属性的注入
package cn.itcast.d_junit4; import org.junit.Test; import org.junit.runner.RunWith; import org.sprin ...
- 太阳地球月亮运行动画(使用@keyframes)
闲来无事的demo <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...