| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:用的RMQ,为什么TLE啊。。。。In Reply To:用的RMQ,为什么TLE啊。。。。 Posted by:juventus at 2015-04-05 14:42:32 #include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
int t,T,n,q,i,j,l,r,maa,mii;
int ma[100000][50],mi[100000][50];
using namespace std;
int main(){
freopen("fuck.in","r",stdin);
memset(mi,1,sizeof(mi));
scanf("%d%d",&n,&q);
for (i=1;i<=n;i++){
scanf("%d",&ma[i][0]);
mi[i][0]=ma[i][0];
}
T=ceil(log2(n));
for (j=1;j<=T;j++)
for (i=1;i<=n;i++){
mi[i][j]=min(mi[i][j-1],mi[i+(1<<j-1)][j-1]);
ma[i][j]=max(ma[i][j-1],ma[i+(1<<j-1)][j-1]);
}
for (i=1;i<=q;i++)
{
scanf("%d%d",&l,&r);
t=floor(log2(r-l+1));
maa=max(ma[l][t],ma[r-(1<<t)+1][t]);
mii=min(mi[l][t],mi[r-(1<<t)+1][t]);
printf("%d\n",maa-mii);
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator