RMQ
// Name : RMQ // Parameter : // Return : 无 void RMQInit(int rmq[][],int a[]){ for(int i=0;i<n;i++) rmq[i][0]=a[i]; for(int j=1;(1<<j)<n;j++) for(int i=0;i+(1<<j)-1<n;i++) rmq=[i][j]=min(rmq[i][j-1],rmq[i+(1<<(j-1))][j-1]); } int RMQ(int l,int r){ int j=lg2[r-l+1]; return min(rmq[q][j],rmq[r-(1<<j)+1][j]); }