• 题意:给你一组数,询问\(q\)次,问所给区间内的最大值和最小值的差.

  • 题解:经典RMQ问题,用st表维护两个数组分别记录最大值和最小值然后直接查询输出就好了

  • 代码:

    int n,q;
    int a[N];
    int dp1[N][30],dp2[N][30];
    int lg[N]; void lg_Init(){
    for(int i=1;i<=n;++i){
    int k=0;
    while(1<<(k+1)<=i) k++;
    lg[i]=k;
    }
    } void RMQ_Init1(){
    for(int i=1;i<=n;++i) dp1[i][0]=a[i];
    for(int j=1;(1<<j)<=n;++j){
    for(int i=1;i+(1<<j)-1<=n;++i){
    dp1[i][j]=max(dp1[i][j-1],dp1[i+(1<<(j-1))][j-1]);
    }
    }
    } void RMQ_Init2(){
    me(dp2,INF,sizeof(dp2));
    for(int i=1;i<=n;++i) dp2[i][0]=a[i];
    for(int j=1;(1<<j)<=n;++j){
    for(int i=1;i+(1<<j)-1<=n;++i){
    dp2[i][j]=min(dp2[i][j-1],dp2[i+(1<<(j-1))][j-1]);
    }
    }
    } int RMQ1(int l,int r){
    int k=lg[r-l+1];
    return max(dp1[l][k],dp1[r-(1<<k)+1][k]);
    } int RMQ2(int l,int r){
    int k=lg[r-l+1];
    return min(dp2[l][k],dp2[r-(1<<k)+1][k]);
    } int main() {
    //ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    n=read(),q=read();
    for(int i=1;i<=n;++i) a[i]=read(); lg_Init();
    RMQ_Init1();
    RMQ_Init2(); while(q--){
    int l,r;
    l=read(),r=read();
    printf("%d\n",RMQ1(l,r)-RMQ2(l,r));
    } return 0;
    }

最新文章

  1. Hibernate设置自增
  2. smarty插件开发代替注册插件方法registerPlugin
  3. hdu----(5023)A Corrupt Mayor&#39;s Performance Art(线段树区间更新以及区间查询)
  4. 页面传值总结Block
  5. HDU 1540 / POJ 2892 Tunnel Warfare (单点更新,区间合并,求包含某点的最大连续个数)
  6. Java EL 详细用法讲解
  7. Hadoop MultipleOutputs 结果输出到多个文件夹 出现数据不全,部分文件为空
  8. PHP - 使用pear的HTTP_Upload包进行上传
  9. Javascript设计模式系列三
  10. 使用flex和bison实现的sql引擎解析
  11. HTML 4.01+5基礎知識
  12. 卸载CentOS7-x64自带的OpenJDK并安装Sun的JDK7的方法
  13. vue学习笔记(四)——Vue实例以及生命周期
  14. Project support for both iOS 6 and iOS 7
  15. 记录eclipse安装SpringBoot插件及搭建SpringBoot项目
  16. Java服务端单元测试指南
  17. 【BZOJ 2337】 2337: [HNOI2011]XOR和路径(概率DP、高斯消元)
  18. uboot全局数据gd_t、bd_t和device_t
  19. Chandy-Lamport_algorithm
  20. NSArray中的对象进行排序

热门文章

  1. 【Docker】CentOS7 上无网络情况下安装
  2. SAP IDES登陆的short dump终于不见了
  3. uni-app开发经验分享二十: 微信小程序 授权登录 获取详细信息 获取手机号
  4. Py-时间,随机,os,sys,jsonpickle序列化,shelve,xml模块
  5. SQL Server和Oracle数据类型对应关系
  6. 基于Redo Log和Undo Log的MySQL崩溃恢复流程
  7. proxmox ve系统绑定上联外网出口bond双网卡
  8. 阿里云ECS hadoop+spark+zookeeper+hive code-server 集群搭建
  9. 如何在Redis中实现事务
  10. 竞态条件 race condition data race