RMQ(log2储存方法)
|
RMQ |
|
难度级别:B; 运行时间限制:1000ms; 运行空间限制:256000KB; 代码长度限制:2000000B |
|
试题描述 |
|
长度为n的数列A,以及q个询问,每次询问一段区间的最小值。 |
|
输入 |
|
第一行,一个整数n |
|
输出 |
|
针对每个询问,输出结果。每个结果占一行。 |
|
输入示例 |
|
5 |
|
输出示例 |
|
2 |
|
其他说明 |
|
数据规模: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储存方法)的更多相关文章
- RMQ(非log2储存方法)
2016-03-31 RMQ 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 长度为n的数列A,以及q个询问,每次询问一段区间 ...
- python深浅拷贝以及数据在内存中储存方法
要搞懂深浅拷贝,首先要明白数据在内存里的储存方法. 一个变量的储存,首先是变量名加上储存内容的ID,通过ID去找到变量名所对应的内容, 当我们对数据进行赋值时,其实是把内容的整体地址赋给别的变量名(相 ...
- Python美女[从新手到高手]--阅读"见个面问题 HashMap 储存方法"联想
今伯乐在线 上看到一篇文章.一道面试题看 HashMap 的存储方式.也就是问: 在 HashMap 中存放的一系列键值对,当中键为某个我们自己定义的类型.放入 HashMap 后,我们在外部把某一个 ...
- RMQ问题-ST方法
参考 http://blog.csdn.net/sdj222555/article/details/7875575 RMQ 就是 Range Minimum/Maximum Query 就是求区间最值 ...
- 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()用来检查 ...
- RMQ问题(超详细!!!)
一.简介 RMQ是询问某个区间内的最大值或最小值,暴力解法对每个询问区间用循环找最值,当n.q>10000会TLE. 常用RMQ的求解方法——ST算法. ST算法通常用在要多次询问一些区间的最值 ...
- 用ST解决RMQ问题
用ST算法解决RMQ(区间最值问题) 在解决CF上的6E Exposition时,用到了RMQ+二分的方法.学习了用ST来快速解决RMQ问题,因此做一个小记 建表 用DP的方式来建ST. dp[i][ ...
- iOS 归档archive使用方法
归档是一种很常用的文件储存方法,几乎任何类型的对象都能够被归档储存,文件将被保存成自定 义类型的文件,相对于NSUserDefault具有更好的保密性. 1.使用archiveRootObject ...
- LCA和RMQ
下面写提供几个学习LCA和RMQ的博客,都很通熟易懂 http://dongxicheng.org/structure/lca-rmq/ 这个应该是讲得最好的,且博主还有很多其他文章,可以读读,感觉认 ...
随机推荐
- 通过ping确定网卡mtu
使用 ping 测试确定网卡最佳 MTU 的方法 MTU ( Maximum Transmission Unit ,最大传输单元)是指某一层协议上一次能最大传输的数据量.当一个数据包超过 MTU 数据 ...
- 用java给php写个万能接口
package helloworld; import java.io.IOException; import javax.servlet.ServletException; import javax. ...
- mvc理念和thinkphp的语法特征 thinkphp引入模板
mvc即模型(model)-视图(view)-控制器(controller)的缩写 控制器很重要,功能性的东西要靠它实现,模型我还没接触到,只知道它对数据库负责,类似一个大控件吧... 速度... 一 ...
- shell 判断字符串是否为数字
本篇文章主要介绍了"shell 判断字符串是否为数字",主要涉及到shell 判断字符串是否为数字方面的内容,对于shell 判断字符串是否为数字感兴趣的同学可以参考一下. #!/ ...
- EF Code First教程-03 数据库迁移Migrator
要在nuget 程序包管理控制台中输入命令 基本命令 Enable-Migrations //打开数据库迁移 Add-Migration AddBlogUrl //新增一个数据库迁移版本 ...
- AbsListView.OnScrollListener
public static interface AbsListView.OnScrollListener android.widget.AbsListView.OnScrollListener 类 ...
- Java控制语句——for循环
for循环语句是支持迭代的一种通用结构,是最有效.最灵活的循环结构. 语法形式: for(初始表达式 ; 布尔表达式 ; 步进){ 循环体 } for循环在执行条件测试后,先执行程序部分,再执行步进. ...
- 设计视图不能用于 x64 和 ARM 目标平台
设计视图不能用于 x64 和 ARM 目标平台
- C#实现根据IP 查找真实地址
IPScanner.cs public class IPScanner { private byte[] data; Regex regex = new Regex(@"(((\d{1,2} ...
- UITableView + UISearchBar 实现搜索功能
#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...