关注
第三题的:
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5,M=20;
int n,m;
int a[N];
int maxf[N][M];
int minf[N][M];
int querymax(int l,int r)
{
int len=r-l+1;
int k=(log(len)/log(2));
return max(maxf[l][k],maxf[r-(1<<k)+1][k]);
}
int querymin(int l,int r)
{
int len=r-l+1;
int k=(log(len)/log(2));
return min(minf[l][k],minf[r-(1<<k)+1][k]);
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>a[i];
for(int j=0;j<M;j++){
for(int i=1;i+(1<<j)-1<=n;i++) {
if(j==0) maxf[i][j]=a[i];
else{
maxf[i][j]=max(maxf[i][j-1],maxf[i+(1<<(j-1))][j-1]);
}
}
}
for(int j=0;j<M;j++){
for(int i=1;i+(1<<j)-1<=n;i++) {
if(j==0) minf[i][j]=a[i];
else{
minf[i][j]=min(minf[i][j-1],minf[i+(1<<(j-1))][j-1]);
}
}
}
while(m--){
int x,y;cin>>x>>y;
cout<<querymax(x,y)-querymin(x,y)<<endl;
}
return 0;
}
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
6422次浏览 110人参与
# 工作中的卑微时刻 #
33414次浏览 199人参与
# 牛客AI体验站 #
16232次浏览 286人参与
# 多益网络工作体验 #
63140次浏览 306人参与
# 有必要和同事成为好朋友吗? #
998次浏览 21人参与
# 正在实习的碎碎念 #
1644887次浏览 13716人参与
# 面试中的破防瞬间 #
1190195次浏览 11027人参与
# 工作一周年分享 #
52324次浏览 274人参与
# 滴!实习打卡 #
786521次浏览 6841人参与
# 秋招吐槽大会 #
304271次浏览 1523人参与
# 机械人的薪资开到多少,才适合去? #
165026次浏览 571人参与
# 你最满意的offer薪资是哪家公司? #
71382次浏览 353人参与
# 大学最后一个寒假,我想…… #
89270次浏览 809人参与
# 你怎么看待AI面试 #
146003次浏览 786人参与
# 哪些公司真双非友好? #
62885次浏览 268人参与
# OC/开奖 #
411279次浏览 2282人参与
# 为了实习逃课值吗? #
65768次浏览 526人参与
# 如果可以选,你最想从事什么工作 #
721963次浏览 4870人参与
# 重来一次,你会对开始求职的自己说 #
32816次浏览 388人参与
# 如何提高实习转正率? #
86522次浏览 505人参与

