问题 A: 数列区间最大值

问题 A: 数列区间最大值

时间限制: 1 Sec  内存限制: 128 MB
提交: 39  解决: 12
[提交][状态][讨论版][命题人:add_wjl][Edit] [TestData]

题目链接:http://acm.ocrosoft.com/problem.php?cid=1689&pid=0

题目描述

有一串含有N个数的数列,有M个询问,每个询问有两个数字X,Y,求出X到Y这段区间内的最大值。

输入

第一行为一个N和M分别表示数字的个数和询问的个数,第二行为N个数。接下来M行,每行都有两个整数X,Y。

1 <= X, Y <= 1e5

输出

输出共M行,每行输出一个数。

样例输入

10 2

3 2 4 5 6 8 1 2 9 7

1 4

3 8

样例输出

5

8

思路:建一个dp[i][j],i表示从i的位置开始扫描,j表示从i开始(i也包括)往后扫描(1<

然后直接RMQ算法,输出的时候优化一下就行了。

 

代码:

#include

using namespace std;

int n;

int dp[1000005][30];//动态规划 ,dp[i][j],j的意思是1<

 

你可能感兴趣的:(ACM,RMQ)