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);

     }

 }

RMQ(log2储存方法)的更多相关文章

  1. RMQ(非log2储存方法)

    2016-03-31 RMQ 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 长度为n的数列A,以及q个询问,每次询问一段区间 ...

  2. python深浅拷贝以及数据在内存中储存方法

    要搞懂深浅拷贝,首先要明白数据在内存里的储存方法. 一个变量的储存,首先是变量名加上储存内容的ID,通过ID去找到变量名所对应的内容, 当我们对数据进行赋值时,其实是把内容的整体地址赋给别的变量名(相 ...

  3. Python美女[从新手到高手]--阅读&quot;见个面问题 HashMap 储存方法&quot;联想

    今伯乐在线 上看到一篇文章.一道面试题看 HashMap 的存储方式.也就是问: 在 HashMap 中存放的一系列键值对,当中键为某个我们自己定义的类型.放入 HashMap 后,我们在外部把某一个 ...

  4. RMQ问题-ST方法

    参考 http://blog.csdn.net/sdj222555/article/details/7875575 RMQ 就是 Range Minimum/Maximum Query 就是求区间最值 ...

  5. es6 Number.isFinite()、Number.isNaN()、Number.isInteger()、Math.trunc()、Math.sign()、Math.cbrt()、Math.fround()、Math.hypot()、Math 对数方法

    ES6在Number对象上,新提供了Number.isFinite()和Number.isNaN()两个方法,用来检查Infinite和NaN这两个特殊值. Number.isFinite()用来检查 ...

  6. RMQ问题(超详细!!!)

    一.简介 RMQ是询问某个区间内的最大值或最小值,暴力解法对每个询问区间用循环找最值,当n.q>10000会TLE. 常用RMQ的求解方法——ST算法. ST算法通常用在要多次询问一些区间的最值 ...

  7. 用ST解决RMQ问题

    用ST算法解决RMQ(区间最值问题) 在解决CF上的6E Exposition时,用到了RMQ+二分的方法.学习了用ST来快速解决RMQ问题,因此做一个小记 建表 用DP的方式来建ST. dp[i][ ...

  8. iOS 归档archive使用方法

    归档是一种很常用的文件储存方法,几乎任何类型的对象都能够被归档储存,文件将被保存成自定 义类型的文件,相对于NSUserDefault具有更好的保密性.   1.使用archiveRootObject ...

  9. LCA和RMQ

    下面写提供几个学习LCA和RMQ的博客,都很通熟易懂 http://dongxicheng.org/structure/lca-rmq/ 这个应该是讲得最好的,且博主还有很多其他文章,可以读读,感觉认 ...

随机推荐

  1. line-block代替float布局;

    line-block代替float布局: 我们先看看float的一些特性(特征) 当我们改变浏览器的大小会出现这样的效果: 或则这样: 有时候,我们希望,以第一排最高的元素为换行基准时,我们就可以使用 ...

  2. iOS 应用内跳转到appstore里下载

    SKStoreProductViewController类是UIViewController的子类, 如果你对view controller比较熟悉的话,那SKStoreProductViewCont ...

  3. iOS: 实现微信支付

    一.介绍: 现在的消费越来越方便,直接带个手机用各种三方的支付平台进行支付就行,例如微信.支付宝.现在正好我所做的项目中用到了微信支付,今天就来整理一下. 二.准备: 1.去微信官方开发者平台注册开发 ...

  4. Spring MVC框架下在java代码中访问applicationContext.xml文件中配置的文件(可以用于读取配置文件内容)

    <bean id="propertyConfigurer" class="com.****.framework.core.SpringPropertiesUtil& ...

  5. Mac自定义隐藏或显示文件的快捷键

    Mac自定义隐藏或显示文件的快捷键 本教程教大家学会自定义隐藏和显示文件夹的快捷键(Command+Shift+.). 1. 打开应用程序--Automator--选择"服务"-- ...

  6. 10月12号 晚八点 Speed-BI 云平台-基于Excel数据源的管理驾驶舱构建全过程,腾讯课堂开课啦

    认真地做了一大摞一大摞的报表,老板没时间看?努力把能反馈的内容都融汇进图表里,老板嫌复杂?做了几个简单的报表,老板一眼就觉得信息不全面?每个报表都用了各种各样的图表,老板却毫无兴趣?明明很努力了,为什 ...

  7. ViewFlipper、ViewPager和Gallery

    1.ViewFlipper 1)View切换的控件—ViewFlipper介绍 ViewFilpper类继承于ViewAnimator类.而ViewAnimator类继承于FrameLayout. 查 ...

  8. mysql修改表名,列名,列类型,添加表列,删除表列

    alter table test rename test1; --修改表名 ); --添加表列 alter table test drop column name; --删除表列 ) --修改表列类型 ...

  9. python_计算一段文本各个字符的出现个数

    >题目要求 任意给定一段文本,求出每个字符出现的个数,并且打印出来 >程序实现 import pprint str01 = "重庆市,简称巴和渝,别称山城.渝都.雾都.桥都,中华 ...

  10. javascript设计模式学习之三—闭包和高阶函数

    一.闭包 闭包某种程度上就是函数的内部函数,可以引用外部函数的局部变量.当外部函数退出后,如果内部函数依旧能被访问到,那么内部函数所引用的外部函数的局部变量就也没有消失,该局部变量的生存周期就被延续. ...