RMQ

难度级别:B; 运行时间限制:1000ms; 运行空间限制:256000KB; 代码长度限制:2000000B

试题描述

长度为n的数列A,以及q个询问,每次询问一段区间的最小值。

输入

第一行,一个整数n
第二行,n个数,表示A数组,用空格隔开。
第三行,一个正整数q
第4到第q+3行每行两个正整数L、R(L<=R),表示一段区间,用一个空格隔开。

输出

针对每个询问,输出结果。每个结果占一行。

输入示例

5
3 2 4 3 5
3
1 3
2 5
3 4

输出示例

2
2
3

其他说明

数据规模:n, q, Ai<=100000

 #include<iostream>

 #include<cmath>

 using namespace std;

 int f[][];

 void rmq(int num)

 {

     for(int j=;j<;j++)

         for(int i=;i<=num;i++)

             if(i+(<<j)-<=num)

                 f[i][j]=min(f[i][j-],f[i+(<<(j-))][j-]);

 }

 int main()

 {

     int i,j,n,t,m;

     scanf("%d",&n);

     for(i=;i<=n;i++)

     {

         scanf("%d",&f[i][]);

     }

     rmq(n);

     int s,p,maxl,minl;

     cin>>m;

     while(m--)

     {

         scanf("%d%d",&s,&p);

         int k=(int)((log(p-s+))/log(2.0));

         minl=min(f[s][k],f[p-(<<k)+][k]);

         printf("%d\n",minl);

     }

 }

最新文章

  1. Jcapta
  2. 关于 app测试工具
  3. Winform 换皮肤
  4. IOS 中关于自定义Cell 上的按钮 开关等点击事件的实现方法(代理)
  5. 【JavaScript】Object.prototype.toString.call()进行类型判断
  6. Javascript中的async await
  7. 个人作业2—英语学习APP案例分析
  8. 在 Vim 中设置 Tab 为4个空格
  9. Powerdesigner逆向工程64位Oracle数据库
  10. macOS Mojave待机耗电大
  11. PBRT笔记(4)——颜色和辐射度
  12. 【Spring学习】【Java基础回顾-数据类型】
  13. 从零开始搭建django前后端分离项目 系列二(项目搭建)
  14. 【转】Java内部类详解
  15. 点评qq浏览器
  16. 7、Python-引用传递与值传递
  17. 使用Bootstrap Popover实现一个弹框上三角形的代码记录
  18. vue 开发系列(七) 路由配置
  19. 团队作业——Beta冲刺2
  20. 在容器服务kubernetes上配置https

热门文章

  1. Wall---hdu1348(求凸包周长 模板)
  2. Java学习-032-JavaWeb_001 -- Tomcat环境部署及基本配置
  3. SpringMVC 406 accept请求错误,没有加入将json序列化的包
  4. Linux 使用 bg 和 fg 切换任务运行状态
  5. winston日志管理2
  6. linux 文件权限 初级
  7. Java 多线程Thread和Runnable
  8. 运用bat进行数据库备份
  9. js获取页面及个元素高度、宽度
  10. Swift游戏实战-跑酷熊猫 05 踩踏平台是怎么炼成的