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]);
}

 

posted on 2013-08-13 10:47  Amyc  阅读(103)  评论(0编辑  收藏  举报