POJ 3264 Balanced Lineup | st表
Posted MSPqwq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 3264 Balanced Lineup | st表相关的知识,希望对你有一定的参考价值。
题意:
求区间max-min
st表模板
1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #include<cmath> 5 #define N 50010 6 using namespace std; 7 int rmin[N][21],rmax[N][21],n,l,r,q; 8 int read() 9 { 10 int ret=0,neg=1; 11 char j=getchar(); 12 for (;j>‘9‘ || j<‘0‘;j=getchar()) 13 if (j==‘-‘) neg=-1; 14 for (;j<=‘9‘ && j>=‘0‘;j=getchar()) 15 ret=ret*10+j-‘0‘; 16 return ret*neg; 17 } 18 int main() 19 { 20 n=read(),q=read(); 21 for (int i=1,x;i<=n;i++) 22 x=read(),rmin[i][0]=x,rmax[i][0]=x; 23 for (int j=1;j<=20;j++) 24 for (int i=1;i+(1<<j-1)<=n;i++) 25 rmin[i][j]=min(rmin[i][j-1],rmin[i+(1<<j-1)][j-1]),rmax[i][j]=max(rmax[i][j-1],rmax[i+(1<<j-1)][j-1]); 26 while (q--) 27 { 28 l=read(),r=read(); 29 int lg=log2(r-l+1); 30 printf("%d\n",max(rmax[l][lg],rmax[r-(1<<lg)+1][lg]) - min(rmin[l][lg],rmin[r-(1<<lg)+1][lg])); 31 } 32 return 0; 33 }
以上是关于POJ 3264 Balanced Lineup | st表的主要内容,如果未能解决你的问题,请参考以下文章