快读也用了还t咋办啊大佬们,23分救救蒟蒻吧
查看原帖
快读也用了还t咋办啊大佬们,23分救救蒟蒻吧
591719
wangxinyu5483楼主2024/11/2 11:33
#include<bits/stdc++.h>
using namespace std;
int f[100002][22],n,m;
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()
{
	n=read();
	m=read(); 
	for(int i=1;i<=n;i++) 
	{
		f[i][0]=read();
	}
	for(int i=1;i<22;i++)
	{
		for(int j=1;j+(1<<i)-1<=n;j++)
		{
			f[j][i]=max(f[j][i-1],f[j+(1<<(i-1))][i-1]);
		}
	}
	for(int i=0;i<m;i++)
	{
		int l=read();
		int r=read();
		int s=__lg(r-l+1);
		printf("%d\n",max(f[l][s],f[r-(1<<s)+1][s]));
	}
	return 0;
}
2024/11/2 11:33
加载中...