本文共 670 字,大约阅读时间需要 2 分钟。
区间最值访问#include#include #include #define max(a,b) (a>b?a:b) #define min(a,b) (a =1;j--) { mx[j][i]=mx[j][i-1]; if(j+(1<<(i-1))<=n)mx[j][i]=max(mx[j][i],mx[j+(1<<(i-1))][i-1]); mi[j][i]=mi[j][i-1]; if(j+(1<<(i-1)<=n))mi[j][i]=min(mi[j][i],mi[j+(1<<(i-1))][i-1]); } } } int rmqmin(int l,int r) { int m=floor(log((double)(r-l+1))/log(2.0)); return min(mi[l][m],mi[r-(1< >n>>q; for(int i=1;i<=n;i++)scanf("%d",&w[i]);//cin>>w[i]; rmqinit(); int l,r; for(int i=1;i<=q;i++) { scanf("%d%d",&l,&r);//cin>>l>>r; printf("%d %d\n",rmqmax(l,r),rmqmin(l,r)); //cout< <<" "< < >n) return 0; }
转载地址:http://druvi.baihongyu.com/