请问油甚么问题吗?
查看原帖
请问油甚么问题吗?
727101
Jin_Yichen楼主2024/9/8 14:23

代码

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
int n,q,a[maxn];
int ma[maxn][35],mi[maxn][35];
inline int read()
{
	int x=0,f=1;char ch=getchar();
	while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
	while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
	return x*f;
}
int main(){
	memset(mi,0x3f,sizeof mi);
	n=read();
	for(register int i=1;i<=n;i++){
		a[i]=read();
		ma[i][0]=a[i];
		mi[i][0]=a[i];
	}
	for(register int j=1;(1<<j)<=n;j++){
		for(int i=1;i+(1<<j)-1<=n;i++){
			ma[i][j]=max(ma[i][j-1],ma[i+(1<<(j-1))][j-1]);
			mi[i][j]=min(mi[i][j-1],mi[i+(1<<(j-1))][j-1]);
		}
	}
	q=read();
	for(register int i=1;i<=q;i++){
		int l,r;
		l=read();r=read();
		int lgr=log2(r-l+1);
		int Ma=max(ma[l][lgr],ma[r-(1<<lgr)+1][lgr]);
		int Mi=min(mi[l][lgr],mi[r-(1<<lgr)+1][lgr]);
		printf("%d\n",Ma-Mi);
	}
	return 0;
}

分数

在本地编译就是正常的,但为什么洛谷过不了,有哪位大佬指点一下吗

2024/9/8 14:23
加载中...