TLE求调
  • 板块灌水区
  • 楼主OneLeft
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/5/19 22:01
  • 上次更新2023/10/23 15:19:36
查看原帖
TLE求调
574215
OneLeft楼主2023/5/19 22:01

题目:https://www.luogu.com.cn/problem/P3865

测评记录:https://www.luogu.com.cn/record/110748267

代码:

#include<bits/stdc++.h>
using namespace std;
int Log[100005],f[100005][25];
int n,m,l,r;
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;
}
inline void print(int x)
{
	if(!x)return;
	print(x/10);
	putchar(x%10+'0');
}
signed main()
{
	for(int i=2;i<=100000;i++)
		Log[i]=Log[i>>1]+1;
	n=read();m=read();
	for(int i=1;i<=n;i++)
		f[i][0]=read();
	for(int j=1;j<=Log[n];j++)
	for(int i=1;i<=n-(1<<j)+1;i++)
		f[i][j]=max(f[i][j-1],f[i+(1<<(j-1))][j-1]);
	for(int i=1;i<=m;i++)
	{
		cin>>l>>r;
		int k=Log[r-l+1];
		print(max(f[l][k],f[r-(1<<k)+1][k]));
		puts("");
	}
	return 0;
}
2023/5/19 22:01
加载中...