Problem
题目描述
老管家是一个聪明能干的人。他为财主工作了整整10年,财主为了让自已账目更加清楚。
要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意。但是由于一些人的挑拨,财主还是对管家产生了怀疑。
于是他决定用一种特别的方法来判断管家的忠诚,他把每次的账目按1,2,3…编号,然后不定时的问管家问题,
问题是这样的:在a到b号账中最少的一笔是多少?为了让管家没时间作假他总是一次问多个问题。
Solution
这显然是一个区间最值问题,我们需要使用 S T ST ST算法来解决。
我们设 f [ i ] [ j ] f[i][j] f[i][j]表示区间内第 i i i个位置往后 2 j 2^j 2j个位置,即在位置 [ i , i + 2 j − 1 ] [i,i+2^j-1] [i,i+2j−1]的最小值。
则有: f [ i ] [ j ] = m a x ( f [ i ] [ j − 1 ] , f [ i + 2 j − 1 ] [