poj3264(ST表模版)
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表模版)相关推荐
- 线性结构 —— ST 表与 RMQ
[概述] RMQ(Range Minimum/Maximum Query),是对于长度为 n 的数列 A,回答若干次询问 RMQ(i,j),返回数列 A 中下标在区间 [i,j] 中的最值,即:区间最 ...
- 【专题】用ST表解决RMQ刷题总结
[专题]用ST表解决RMQ刷题总结 看了一下上次写博客居然是好久以前的事了(我真是老懒狗了 ) 开门见山,直接放专题链接和代码 kuangbin rmq专题 这个contest里面一共十道题但是实际上 ...
- BZOJ3166 [Heoi2013]Alo 【可持久化trie树 + 二分 + ST表】
题目 Welcome to ALO ( Arithmetic and Logistic Online).这是一个VR MMORPG , 如名字所见,到处充满了数学的谜题. 现在你拥有n颗宝石,每颗宝石 ...
- 【JZOJ5064】【GDOI2017第二轮模拟day2】友好城市 Kosarajo算法+bitset+ST表+分块
题面 在Byteland 一共有n 座城市,编号依次为1 到n,这些城市之间通过m 条单向公路连接. 对于两座不同的城市a 和b,如果a 能通过这些单向道路直接或间接到达b,且b 也能如此到达a,那么 ...
- HDU2586(ST表+dfs)
ST 表算法用于查询区间最值,为静态算法,查询区间最值时不能更新信息,预处理复杂度为 O(nlongn),查询为 O(1).适用于不更新信息且查询很多的问题. 题意:首先要计算出各个可到达点之间的长度 ...
- HDU5443(ST表)
ST 表算法用于查询区间最值,为静态算法,查询区间最值时不能更新信息,预处理复杂度为 O(nlongn),查询为 O(1).适用于不更新信息且查询很多的问题. 题意:找出给定区间的最大水源. #inc ...
- HDU3183(ST表)
ST (RMQ)表 ST 表算法用于查询区间最值,为静态算法,查询区间最值时不能更新信息,预处理复杂度为 O(nlongn),查询为 O(1).适用于不更新信息且查询很多的问题. 题意:从给出的一串数 ...
- [51nod] 1766树上的最远点对 树的直径 树剖LCA+ST表静态查询
题意: 给你一棵带权树,q次查询,每次给出两个区间,[l1,r1][l2,r2][l_1,r_1] [l_2,r_2][l1,r1][l2,r2]从这两个区间中分别选择两个数字,使得这两个点的 ...
- 后缀数组 ---- 2018~2019icpc焦作H题[后缀数组+st表+二分+单调栈]
题目链接 题目大意: 给出nnn个数,定义f[l,r]f[l,r]f[l,r]表示 区间[l,r][l,r][l,r]的最大值,求所有 子区间的最大值的和,要求相同的子区间只能算一次 比如数列 5 6 ...
最新文章
- blue pill Flash 128KB的传言
- python字符串27种常见的方法
- sharepoint中一些gridview的使用方法
- php 字符串转换xml,php 数组转xml字符串、xml字符串转数组方法案例
- 一款在线工具,克服Python、Java等7种语言编程障碍
- java读取Resources下文件
- HaProxy+Keepalived+Mycat高可用群集配置
- 书店POS机--细化迭代2--测试
- 程序员的自我修养(2)——计算机网络
- HDU 1815, POJ 2749 Building roads(2-sat)
- 华为发布国行版P40系列,售价4188元起;大疆回应“至少50%的裁员清扫计划”;Firefox 75发布 | 极客头条...
- Win10常用命令:定时关机(shutdown命令)
- Texture ASTC转换ETC
- 针对不同场景的Python合并多个Excel方法
- 前端-项目引入苹方字体
- 本地小说阅读网站打造
- c莫比乌斯函数_数论——容斥原理、莫比乌斯函数
- 人脸识别之人脸验证(五)--NormFace
- 【黄敏聪|自由设计师系列1-基础篇】教程之二 |自由设计师走向成功最佳策略是什么?
- 音视频智能分析技术EasyCVR在森林火灾监测项目中的应用