RMQ(区间最值问题)

问题:

  RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大)值,也就是说,RMQ问题是指求区间最值的问题。

dp思想:

  dp[i][j]中存储的是从第j个数开始的2i个数最大的数。(如下图)

  dp[2][1]表示的是1到1+22-1中最大的数。即下表1-4中最大的数。

  如果要求1-6中最大的数,可以先将区间拆成两个2x长度的字串,分别求字串的最大值。1-6可以拆分成1-4和3-6这两个序列长度都为4.所以直接比较dp[2][1]和dp[2][3]即可。

dp代码:

猜你喜欢

转载自www.cnblogs.com/wz-archer/p/10687079.html