#include #include//min,max using namespace std; const int maxn=100010; int a[maxn];//数据 int lb[maxn];//存储log值 int F[maxn][20];//F(i,j)表示区间[i,i+2^j-1]的最值,区间长度为2^j void Initlog()//求解所有log值,保存到数组lb[] { lb[0]=-1; for(int i=1;ir) return 0; int k=lb[r-l+1]; return max(F[l][k],F[r-(1<