void RMQ_init(){//ST表的创建模板 for(int i=0;i<n;i++) d[i][0]=mo[i]; for(int j=1;(1<<j)<=n;j++) for(int i=0;i+(1<<j)-1<n;i++){ d[i][j]=min(d[i][j-1],d[i+(1<<(j-1))][j-1]); } } int RMQ_min(int L,int R){//区间最小、大值 int k=0; while((1<<(k+1))<=R-L+1) k++; return min(d[L][k],d[R-(1<<k)+1][k]); }
//应用条件:不能修改!
原文地址:https://www.cnblogs.com/Tidoblogs/p/11219897.html
时间: 2024-10-29 16:49:07