ST 表算法用于查询区间最值,为静态算法,查询区间最值时不能更新信息,预处理复杂度为 O(nlongn),查询为 O(1)。适用于不更新信息且查询很多的问题。
题意:求解范围内最高的奶牛和最短的奶牛之间的高度差异。

RMQ

#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
const int maxx=5e4+10;;
const int inf=0x3f3f3f3f;
int a[maxx];
int n,q;
int m;
int maxsum[maxx][50],minsum[maxx][50];
void RMQ(){for(int i=1;i<=n;i++){maxsum[i][0]=minsum[i][0]=a[i];}for(int j=1;(1<<j)<=n;j++){for(int i=1;i+(1<<j)-1<=n;i++){minsum[i][j]=min(minsum[i][j-1],minsum[i+(1<<(j-1))][j-1]);maxsum[i][j]=max(maxsum[i][j-1],maxsum[i+(1<<(j-1))][j-1]);}}
}
int maxl,minl;
void Query(int l,int r){int k=(int)((log(r-l+1))/log(2.0));maxl=max(maxsum[l][k],maxsum[r-(1<<k)+1][k]);minl=min(minsum[l][k],minsum[r-(1<<k)+1][k]);cout<<maxl-minl<<endl;
}int main(){int t;while(scanf("%d %d",&n,&m)!=EOF){memset(a,0,sizeof(a));memset(maxsum,0,sizeof(maxsum));memset(minsum,0,sizeof(minsum));for(int i=1;i<=n;i++){scanf("%d",&a[i]);}RMQ();for(int i=1;i<=m;i++){int left,right;scanf("%d %d",&left,&right);if(left>right)swap(left,right);Query(left,right);}}return 0;
}

poj3264(ST表模版)相关推荐

  1. 线性结构 —— ST 表与 RMQ

    [概述] RMQ(Range Minimum/Maximum Query),是对于长度为 n 的数列 A,回答若干次询问 RMQ(i,j),返回数列 A 中下标在区间 [i,j] 中的最值,即:区间最 ...

  2. 【专题】用ST表解决RMQ刷题总结

    [专题]用ST表解决RMQ刷题总结 看了一下上次写博客居然是好久以前的事了(我真是老懒狗了 ) 开门见山,直接放专题链接和代码 kuangbin rmq专题 这个contest里面一共十道题但是实际上 ...

  3. BZOJ3166 [Heoi2013]Alo 【可持久化trie树 + 二分 + ST表】

    题目 Welcome to ALO ( Arithmetic and Logistic Online).这是一个VR MMORPG , 如名字所见,到处充满了数学的谜题. 现在你拥有n颗宝石,每颗宝石 ...

  4. 【JZOJ5064】【GDOI2017第二轮模拟day2】友好城市 Kosarajo算法+bitset+ST表+分块

    题面 在Byteland 一共有n 座城市,编号依次为1 到n,这些城市之间通过m 条单向公路连接. 对于两座不同的城市a 和b,如果a 能通过这些单向道路直接或间接到达b,且b 也能如此到达a,那么 ...

  5. HDU2586(ST表+dfs)

    ST 表算法用于查询区间最值,为静态算法,查询区间最值时不能更新信息,预处理复杂度为 O(nlongn),查询为 O(1).适用于不更新信息且查询很多的问题. 题意:首先要计算出各个可到达点之间的长度 ...

  6. HDU5443(ST表)

    ST 表算法用于查询区间最值,为静态算法,查询区间最值时不能更新信息,预处理复杂度为 O(nlongn),查询为 O(1).适用于不更新信息且查询很多的问题. 题意:找出给定区间的最大水源. #inc ...

  7. HDU3183(ST表)

    ST (RMQ)表 ST 表算法用于查询区间最值,为静态算法,查询区间最值时不能更新信息,预处理复杂度为 O(nlongn),查询为 O(1).适用于不更新信息且查询很多的问题. 题意:从给出的一串数 ...

  8. [51nod] 1766树上的最远点对 树的直径 树剖LCA+ST表静态查询

    题意: 给你一棵带权树,q次查询,每次给出两个区间,[l1,r1][l2,r2][l_1,r_1] [l_2,r_2][l1​,r1​][l2​,r2​]从这两个区间中分别选择两个数字,使得这两个点的 ...

  9. 后缀数组 ---- 2018~2019icpc焦作H题[后缀数组+st表+二分+单调栈]

    题目链接 题目大意: 给出nnn个数,定义f[l,r]f[l,r]f[l,r]表示 区间[l,r][l,r][l,r]的最大值,求所有 子区间的最大值的和,要求相同的子区间只能算一次 比如数列 5 6 ...

最新文章

  1. blue pill Flash 128KB的传言
  2. python字符串27种常见的方法
  3. sharepoint中一些gridview的使用方法
  4. php 字符串转换xml,php 数组转xml字符串、xml字符串转数组方法案例
  5. 一款在线工具,克服Python、Java等7种语言编程障碍
  6. java读取Resources下文件
  7. HaProxy+Keepalived+Mycat高可用群集配置
  8. 书店POS机--细化迭代2--测试
  9. 程序员的自我修养(2)——计算机网络
  10. HDU 1815, POJ 2749 Building roads(2-sat)
  11. 华为发布国行版P40系列,售价4188元起;大疆回应“至少50%的裁员清扫计划”;Firefox 75发布 | 极客头条...
  12. Win10常用命令:定时关机(shutdown命令)
  13. Texture ASTC转换ETC
  14. 针对不同场景的Python合并多个Excel方法
  15. 前端-项目引入苹方字体
  16. 本地小说阅读网站打造
  17. c莫比乌斯函数_数论——容斥原理、莫比乌斯函数
  18. 人脸识别之人脸验证(五)--NormFace
  19. 【黄敏聪|自由设计师系列1-基础篇】教程之二 |自由设计师走向成功最佳策略是什么?
  20. 音视频智能分析技术EasyCVR在森林火灾监测项目中的应用

热门文章

  1. 求表达式 f(n)结果末尾0的个数
  2. selenium工具的安装
  3. 技术11期:Atlas的概念你了解多少?
  4. 实例分割最新最全面综述:从Mask R-CNN到BlendMask
  5. Commonjs规范
  6. Django+Bootstrap+Mysql 搭建个人博客(五)
  7. 软件工程个人作业01
  8. Linux中逻辑卷相关知识简介
  9. 《一个操作系统的实现》读书笔记连载ing……
  10. 上海电力大学计算机专业分数线,上海电力大学2020年录取分数线(附2017-2020年分数线)...