问题 H: 奶牛的高度差
传送门:ZWGOJ | 洛谷 P2880 [USACO07JAN] Balanced Lineup G (1) | RMQ 问题
- 题目来源:USACO 2007/1 月赛
题目描述
原题面
每天,农夫 John 的 \(n\:(1\le n\le 5\times 10^4)\) 头牛总是按同一序列排队。
有一天,John 决定让一些牛们玩一场飞盘比赛。他准备找一群在队列中位置连续的牛来进行比赛。但是为了避免水平悬殊,牛的身高不应该相差太大。John 准备了 \(q\:(1\le q\le 1.8\times10^5)\) 个可能的牛的选择和所有牛的身高 \(h_i\:(1\le h_i\le 10^6, 1\le i\le n)\)。他想知道每一组里面最高和最低的牛的身高差。
输入要求
第一行两个数 \(n,q\)。
接下来 \(n\) 行,每行一个数 \(h_i\)。
再接下来 \(q\) 行,每行两个整数 \(a\) 和 \(b\),表示询问第 \(a\) 头牛到第 \(b\) 头牛里的最高和最低的牛的身高差。
输出要求
输出共 \(q\) 行,对于每一组询问,输出每一组中最高和最低的牛的身高差。
样例
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 |
|
解法
ST 表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
线段树
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
|