官术网_书友最值得收藏!

訓練1 區間最值差

題目描述(POJ3264):每天擠奶時,約翰的N頭奶牛(1≤N≤50,000)都以相同的順序排隊。他挑選一系列連續的奶牛來玩游戲。為了讓所有奶牛都玩得開心,它們的高度差異不應太大。約翰列出了Q組(1≤Q≤200,000)奶牛和它們的高度(1≤height≤1,000,000)。他希望確定每個小組中最高和最矮的奶牛之間的高度差異。

輸入:第1行包含兩個整數NQ。接下來N行,每行都包含一個整數,表示奶牛的高度。最后Q行,每行都包含兩個整數AB(1≤ABN),代表從AB的奶牛范圍。

輸出:輸出Q行,每行都包含一個整數,表示該范圍內最高和最矮奶牛的高度差。

題解:本題求解區間最大值和最小值之差,是典型的RMQ問題,可以使用ST解決。

1. 算法設計

(1)創建ST。

(2)查詢[a, b]區間的最大值和最小值,然后輸出其差值。

2. 算法實現

主站蜘蛛池模板: 宁陕县| 马尔康县| 安吉县| 万盛区| 镇平县| 万安县| 凤台县| 永安市| 吴江市| 宝坻区| 日土县| 上蔡县| 衢州市| 朝阳区| 漾濞| 城步| 广饶县| 巴楚县| 瑞金市| 镇平县| 腾冲县| 黑山县| 新宾| 镇赉县| 黔江区| 安阳市| 视频| 德州市| 清原| 涡阳县| 田东县| 旬邑县| 秀山| 和龙市| 台江县| 大名县| 长治县| 贺州市| 综艺| 吉木萨尔县| 民权县|