The Water Problem

HDU - 5443

「 第一部分nlogn预处理   第二部分O(1)询问 」

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000004;
int f[maxn][20];
int a[maxn];
int n,q;
void st()
{for(int i = 1; i <= n; i ++) f[i][0] = a[i]; int t = log(n) / log(2) + 1;for(int j = 1; j < 20; j ++){for(int i = 1; i <= n - (1 << j) + 1; i ++){f[i][j] = max(f[i][j-1],f[i + (1 << (j - 1))][j - 1]);}}
}
int query(int x, int y)
{int t = log(abs(y-x + 1))/ log(2);int a = f[x][t];int b = f[y - (1 << t) + 1][t];return max(a,b);
}
int main()
{int t;scanf("%d",&t);while(t--){scanf("%d",&n);for(int i=1; i<=n; i++) scanf("%d",a+i);int l,r;st();scanf("%d",&q);while(q--){scanf("%d%d",&l,&r);cout<<query(l,r)<<endl;}}return 0;
}

转载于:https://www.cnblogs.com/lcchy/p/10139415.html

ST表(模板)「 查询区间最值 」相关推荐

  1. RMQ问题-ST表倍增处理静态区间最值

    简介 ST表是利用倍增思想处理RMQ问题(区间最值问题)的一种工具. 它能够做到O(nlogn)预处理,O(1)查询的时间复杂度,效率相当不错. 算法 1.预处理 ST表利用倍增的思想.以洛谷的P38 ...

  2. 【分块】#6284. 数列分块入门 8(区间赋值为相同的值,查询区间某值个数)

    整理的算法模板合集: ACM模板 题目传送门 碎块必须每次都遍历一遍,整块打标记 这里开始我们O(n)遍历一遍打标记,当一个整块被打满标记以后(会变成相同的数字),就是O(1)查询,均摊时间复杂度为O ...

  3. poj3264(ST表模版)

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

  4. HDU2586(ST表+dfs)

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

  5. HDU5443(ST表)

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

  6. HDU3183(ST表)

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

  7. ST算法 - RMQ(区间最值问题)—— 倍增

    文章目录 引入倍增: 例题1:区间和 例题2:Genius ACM 应用: ST算法 求解 RMQ(区间最值问题) 模板Code: 练习题: ST算法 维护区间最大公约数 例题:Pair of Num ...

  8. P3865 【模板】ST表

    P3865 [模板]ST表 https://www.luogu.org/problemnew/show/P3865 题目背景 这是一道ST表经典题--静态区间最大值 请注意最大数据时限只有0.8s,数 ...

  9. ST表 (模板) 洛谷3865

    题目背景 这是一道ST表经典题--静态区间最大值 请注意最大数据时限只有0.8s,数据强度不低,请务必保证你的每次查询复杂度为 O(1) O(1) 题目描述 给定一个长度为 N N 的数列,和 M M ...

最新文章

  1. PAT (Advanced Level) 1014. Waiting in Line (30)
  2. 互联网惨遭Struts高危漏洞摧残
  3. mxnet 常用层,卷积激活损失
  4. python 输出字符串编码_Python print 字符串编码问题
  5. muduo学习笔记 - 第五章 高效的多线程日志
  6. IdentityServer4系列 | 常见术语说明
  7. 扎心了,程序员2017到2019经历了什么?
  8. webapp文本编辑器_Project Student:维护Webapp(可编辑)
  9. 眼图 非差分线_利用眼图解决USB在布线中的信号完整性问题
  10. java socket 阻塞模式_Java中Socket Read阻塞问题
  11. Sqlite大数据量查询优化比较-转
  12. 『vulnhub系列』dpwwn-1—Linux计划任务提权
  13. 3DMax如何将一个整的模型将里面组件都分离出来
  14. 【PAT甲级】1087 All Roads Lead to Rome 条条大路通罗马
  15. 在微信小游戏中使用tensorflow的face-landmarks-detection
  16. java手机号正则验证(中国手机号)
  17. 江苏计算机电缆报价,江苏价格低的阻燃计算机电缆
  18. 低功耗4g无线视频服务器,低功耗4G+AI+IOT视频安防行业的首选
  19. java事务什么时候回滚_spring事务什么时候会自动回滚
  20. 努力工作的意义是什么?致迷失的自己

热门文章

  1. Django 3.2.5博客开发教程:基础配置
  2. Hadoop Yarn配置参数整理(非常全面)
  3. Win10如何取消开机密码
  4. Spark RDD并行度与分区设置
  5. k8s Service之NodePort
  6. 【代码】使用reentrantlock必须要手动释放锁
  7. JDBC的CRUD操作之PreparedStatement的修改操作
  8. Java客户端操作elasticsearch--向索引库添加mappings映射数据
  9. IDEA使用自带数据库连接工具连接Mysql,及报错解决
  10. lisp 角平分线_最佳VisualLISP及VBAforAutoCAD2000程序123例 张光斌.pdf