P3865 【模板】ST表
P3865 【模板】ST表
https://www.luogu.org/problemnew/show/P3865
题目背景
这是一道ST表经典题——静态区间最大值
请注意最大数据时限只有0.8s,数据强度不低,请务必保证你的每次查询复杂度为 O(1)O(1)
题目描述
给定一个长度为 NN 的数列,和 MM 次询问,求出每一次询问的区间内数字的最大值。
输入输出格式
输入格式:
第一行包含两个整数 N, MN,M ,分别表示数列的长度和询问的个数。
第二行包含 NN 个整数(记为 a_iai),依次表示数列的第 ii 项。
接下来 MM行,每行包含两个整数 l_i, r_ili,ri,表示查询的区间为 [ l_i, r_i][li,ri]
输出格式:
输出包含 MM行,每行一个整数,依次表示每一次询问的结果。
输入输出样例
说明
对于30%的数据,满足: 1 \leq N, M \leq 101≤N,M≤10
对于70%的数据,满足: 1 \leq N, M \leq {10}^51≤N,M≤105
对于100%的数据,满足: 1 \leq N \leq {10}^5, 1 \leq M \leq {10}^6, a_i \in [0, {10}^9], 1 \leq l_i \leq r_i \leq N1≤N≤105,1≤M≤106,ai∈[0,109],1≤li≤ri≤N
- #include<bits/stdc++.h>
- #define ll long long
- #define maxn 100005
- #define lson l,mid,rt<<1
- #define rson mid+1,r,rt<<1|1
- #define pb push_back
- #define pii pair<int,int>
- using namespace std;
- int a[];
- int ans[][];
- int main(){
- int n,m;
- scanf("%d %d",&n,&m);
- for(int i=;i<=n;i++){
- scanf("%d",&ans[i][]);
- }
- for(int i=;i<=;i++){
- for(int j=;j+(<<i)-<=n;j++){
- ans[j][i]=max(ans[j][i-],ans[j+(<<(i-))][i-]);
- }
- }
- int x,y;
- while(m--){
- scanf("%d %d",&x,&y);
- int k=log2(y-x+);
- printf("%d\n",max(ans[x][k],ans[y-(<<k)+][k]));
- }
- }
P3865 【模板】ST表的更多相关文章
- [算法模板]ST表
[算法模板]ST表 ST表和线段树一样,都能解决RMQ问题(范围最值查询-Range Minimum Query). 我们开一个数组数组\(f[maxn][maxn\log_2]\)来储存数据. 定义 ...
- [模板]ST表浅析
ST表,稀疏表,用于求解经典的RMQ问题.即区间最值问题. Problem: 给定n个数和q个询问,对于给定的每个询问有l,r,求区间[l,r]的最大值.. Solution: 主要思想是倍增和区间d ...
- 模板 ST表
ST表 询问静态最值. code: #include <iostream> #include <cstdio> using namespace std; inline int ...
- 洛谷 P3865 【模板】ST表
P3865 [模板]ST表 题目背景 这是一道ST表经典题——静态区间最大值 请注意最大数据时限只有0.8s,数据强度不低,请务必保证你的每次查询复杂度为 O(1)O(1) 题目描述 给定一个长度为 ...
- 洛谷—— P3865 【模板】ST表
https://www.luogu.org/problemnew/show/P3865 题目背景 这是一道ST表经典题——静态区间最大值 请注意最大数据时限只有0.8s,数据强度不低,请务必保证你的每 ...
- [洛谷P3865]【模板】ST表
题目大意:区间静态最大值 题解:ST表,zkw线段树 ST表: st[i][j]存[i,i+$j^{2}$-1]的最大值,查询时把区间分成两个长度相同的小区间(可重复) #include<cst ...
- skkyk:题解 洛谷P3865 【【模板】ST表】
我不会ST表 智推推到这个题 发现标签中居然有线段树..? 于是贸然来了一发线段树 众所周知,线段树的查询是log(n)的 题目中"请注意最大数据时限只有0.8s,数据强度不低,请务必保证你 ...
- luogu P3865 【模板】ST表
题目背景 这是一道ST表经典题——静态区间最大值 请注意最大数据时限只有0.8s,数据强度不低,请务必保证你的每次查询复杂度为 O(1)O(1) 题目描述 给定一个长度为 NN 的数列,和 MM 次询 ...
- 「LuoguP3865」 【模板】ST表 (线段树
题目背景 这是一道ST表经典题——静态区间最大值 请注意最大数据时限只有0.8s,数据强度不低,请务必保证你的每次查询复杂度为 O(1) 题目描述 给定一个长度为 N 的数列,和 M 次询问,求出每一 ...
随机推荐
- Glide 加载部分圆角图片
在App开放中经常遇到设置ImageView为部分圆角的情况,但是Glide又没有提供这个方法,该怎么办呢?直接上代码! /** * @author csc * @date 2019-01-18 ...
- 盒子尺寸父子传递及嵌套Demo
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- (整理)REHL6.5_Yum安装Reids
1.yum添加epel源 yum install epel-release 默认安装,遇到“确定吗?”输入Y 2.yum安装Redis yum install redis 默认安装,遇到“确定吗?” ...
- js滚动到指定位置
序言:在网络上百度,关键字:“js div滚动到指定位置”,结果基本上大同小异!各种大神都给我们总结出来了四种滚动到指定位置的办法,可惜再下愚钝,每个都不会用,所以写了一个超级简单的方法来使初学者一看 ...
- [java,2019-01-25] 图片和二进制互转
import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOu ...
- js原生倒计时
倒计时是2019年6月7号10点开始的 代码粘贴过去直接运行即可 <!DOCTYPE html> <html lang="en"> <head> ...
- 同一台windows下配置安装多个mysql实例,实现主从同步
一.安装多个mysql 参见: https://blog.csdn.net/wrh_csdn/article/details/80198795 https://www.cnblogs.com/qjoa ...
- [UnityShader基础]06.#pragma multi_compile
参考链接: https://blog.csdn.net/qq826364410/article/details/81774741 https://docs.unity3d.com/Manual/SL- ...
- 【机器学习_8】pandas
背景 关于同一个话题,不同作者也有不同行文结构.但要真正理解并会用,在我的经验里,是必须要自己重新组织的. 本文是基于以往看过的资料,从自身数据处理应用的角度出发,重新组织pandas应用结构,希望能 ...
- scala 随笔
创建map,并向map添加元素 val idMap = Map( "group_id" -> "GID", "sim_id" -> ...