ST表
来源:互联网 发布:淘宝上威力大的玩具枪 编辑:程序博客网 时间:2024/04/28 17:58
ST表用于处理区间最值问题,时间复杂度可以处理到O(nlogn),用mn[i][j]表示从j到j+2^i-1的最小值,长度为2^i。j到j+2^i-1的长度为2^i,那么一半的长度就等于2^(i-1),前半段的状态表示为mn[i-1][j],后半段的长度也为2^(i-1),后半段的状态表示为mn[i-1][j+2^(i-1)].
综上可得:
mn[i][j]=min(mn[i-1][j],mn[i-1][j+2^(i-1)].
#include<cstdio>#include<algorithm>using namespace std;int a[100100];int d[100100][110]; int n,m;void rmq(){ for(int i=1;i<=m;++i) d[i][0]=a[i]; for(int j=1; (1<<j) <=m;++j) for(int i=1; i+ (1<<j) -1<=m;++i) d[i][j]=min(d[i][j-1],d[i+( 1<<(j-1) )][j-1]);}int findit(int l,int r){ int kk=0; while( ( 1<<(kk+1) )<=r-l+1) kk++; return min(d[l][kk],d[r-(1<<kk)+1][kk]);}int main(){ scanf("%d",&m); for(int i=1;i<=m;++i) scanf("%d",&a[i]); rmq(); int qq,pp; scanf("%d%d",&qq,&pp); printf("%d",findit(qq,pp)); return 0;}
阅读全文
2 0
- ST表
- st表
- st表
- st表
- ST表
- st表
- ST表
- ST表
- st表
- ST表
- ST表
- ST 稀疏表
- ST(稀疏表)算法
- ST表学习笔记
- HDU5443->ST表
- 【RMQ算法】ST表
- Sparse Table ST表
- ST表LCA模板
- C#窗体-个人简历生成(自己设计并编写一个 Windows 应用程序,要求用到TextBox、GroupBox、RadioButton )
- python中os操作文件及文件路径实例汇总
- asp.net,在公共类中访问Session
- Jq中click事件重复执行的问题
- Centos7建立桌面快捷方式
- ST表
- Oracle字段保留2两位小数点number类型
- Web逆向之通过Android中WebView获取网站视频真实链接
- 最新Banner简单实用 1.4.10
- PDF拦截器
- asp.net使用session丢失问题的解决办法
- 陌生的NSUserDefaults
- Android 自定义控件
- Window下搭建Tomcat+Nginx+Redis