标签:des style blog http color os io for
1 #include<cstdio> 2 #include<cmath> 3 #include<cstring> 4 #include<algorithm> 5 #include<iostream> 6 #define maxn 50000+100 7 #define maxm 100000 8 using namespace std; 9 int n,m,a[maxn],f[maxn][16],g[maxn][16]; 10 inline int read() 11 { 12 int x=0,f=1;char ch=getchar(); 13 while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();} 14 while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘;ch=getchar();} 15 return x*f; 16 } 17 void rmq() 18 { 19 for(int i=1;i<=n;i++)f[i][0]=a[i]; 20 for(int i=1;i<=floor(log(n)/log(2));i++) 21 for(int j=1;j<=n-(1<<i)+1;j++) 22 f[j][i]=max(f[j][i-1],f[j+(1<<(i-1))][i-1]); 23 for(int i=1;i<=n;i++)g[i][0]=a[i]; 24 for(int i=1;i<=floor(log(n)/log(2));i++) 25 for(int j=1;j<=n-(1<<i)+1;j++) 26 g[j][i]=min(g[j][i-1],g[j+(1<<(i-1))][i-1]); 27 } 28 int query(int x,int y) 29 { 30 int z=floor(log(y-x+1)/log(2)); 31 return max(f[x][z],f[y-(1<<z)+1][z])-min(g[x][z],g[y-(1<<z)+1][z]); 32 } 33 int main() 34 { 35 freopen("input.txt","r",stdin); 36 freopen("output.txt","w",stdout); 37 n=read();m=read(); 38 for(int i=1;i<=n;i++)a[i]=read(); 39 rmq(); 40 while(m--) 41 { 42 int x=read(),y=read(); 43 printf("%d\n",query(x,y)); 44 } 45 return 0; 46 }
BZOJ1636: [Usaco2007 Jan]Balanced Lineup,布布扣,bubuko.com
BZOJ1636: [Usaco2007 Jan]Balanced Lineup
标签:des style blog http color os io for
原文地址:http://www.cnblogs.com/zyfzyf/p/3925322.html