社区讨论

ST表56分WA求助

P3865【模板】ST 表 & RMQ 问题参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@lo8u24qu
此快照首次捕获于
2023/10/28 00:33
2 年前
此快照最后确认于
2023/10/28 00:33
2 年前
查看原帖
#8~#12都WA了,显示了一串“Too short on line 100001”,跟题解对了也没发现什么问题,求大佬们帮忙看看代码
CPP
#include<bits/stdc++.h>
#define N 100005
using namespace std;
int n,m,lg2[N],f[N][50];
inline void prebuild()
{
	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]);
		}
	}
}
inline void ask(int l,int r)
{
	int k=lg2[r-l+1];
	int ans=max(f[l][k],f[r-(1<<k)+1][k]);
	printf("%d\n",ans);
}
int main()
{
	lg2[0]=-1;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		lg2[i]=lg2[i>>1]+1;
		scanf("%d",&f[i][0]);
	}
	prebuild();
	int l,r;
	for(int i=1;i<=n;i++)
	{
		scanf("%d%d",&l,&r);
		if(l==r)
		{
			printf("%d",f[l][0]);
			continue;
		}
		ask(l,r);
	}
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...