求助 后面6个点TLE
查看原帖
求助 后面6个点TLE
739746
Self_control楼主2024/3/30 17:05
#include<bits/stdc++.h>
using namespace std;
int n,m,f[100005][20],a[100005];
void st(int k)
{
	for(int i=1;i<=k;++i)f[i][0]=a[i];
	for(int j=1;(1<<j)<=n;++j)
		for(int i=1;i+(1<<j)-1<=n;++i)
			f[i][j]=max(f[i][j-1],f[i+(1<<j-1)][j-1]); 
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	st(n);
	for(int i=1;i<=m;i++)
	{
		int x,y;
		cin>>x>>y;
		int t=log2(y-x+1);
		cout<<max(f[x][t],f[y-(1<<t)+1][t])<<endl;
	}
	return 0;
}
2024/3/30 17:05
加载中...