ST表
来源:互联网 发布:mac键盘按键错乱 编辑:程序博客网 时间:2024/04/27 22:36
很早以前就听说区间RMQ问题可以做到
就是用到了ST表
其实很类似倍增
预处理就用倍增的那种方法
还需要预处理出每个
然后对于每个区间 令
那么就可以取左右两个长度为
不难证明这样一定会覆盖整个区间
比较局限的地方是只能静态查询
#include<bits/stdc++.h>using namespace std;#define N 100010#define K 18int ST[N][K],lg[N];int main(){ int n,m,i,j; scanf("%d%d",&n,&m); for (i=1;i<=n;i++) scanf("%d",&ST[i][0]); for (j=1;(1<<j)<=n;j++) for (i=1;i+(1<<j)-1<=n;i++) ST[i][j]=max(ST[i][j-1],ST[i+(1<<(j-1))][j-1]); for (i=1;(1<<i)<=n;i++) lg[1<<i]=i; for (i=1;i<=n;i++) lg[i]=max(lg[i],lg[i-1]); for (i=1;i<=m;i++){ int x,y; scanf("%d%d",&x,&y); int t=lg[y-x+1]; printf("%d\n",max(ST[x][t],ST[y-(1<<t)+1][t])); } return 0;}
Date:2017/11/8
By CalvinJin
阅读全文
0 0
- ST表
- st表
- st表
- st表
- ST表
- st表
- ST表
- ST表
- st表
- ST表
- ST表
- ST 稀疏表
- ST(稀疏表)算法
- ST表学习笔记
- HDU5443->ST表
- 【RMQ算法】ST表
- Sparse Table ST表
- ST表LCA模板
- HTTP协议学习# (一)request 和response 解析
- 单片机学习札记1---前言
- TensorFlow不同版本引起的错误
- vue入门篇之内部指令
- 解决在oracle数据库中使用hibernate生成表不能正确创建表的问题
- ST表
- 图的存储之链式前向星
- log4j2之AsynchAppender
- Hbase和Hive的区别
- 6-1 循环单链表区间删除
- SQL translation
- C语言进阶-第15~16讲:结构体(含指针和函数)
- 【厉害了我的哥】—— 快速布局神器Flexbox布局
- 图片外链用