社区讨论
TLE49butST表
P3865【模板】ST 表 & RMQ 问题参与者 7已保存回复 8
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @mjculaaz
- 此快照首次捕获于
- 2025/12/19 20:30 2 个月前
- 此快照最后确认于
- 2025/12/21 13:20 2 个月前
代码如下:
CPP#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,m,a[200005],ST[200005][20];
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 find(int l,int r){
int k=log2(r-l+1);
return max(ST[l][k],ST[r-(1<<k)+1][k]);
}
signed main(){
cin>>n>>m;
for (int i=1;i<=n;i++)a[i]=read();
int lg=log2(n);
for (int i=1;i<=n;i++)ST[i][0]=a[i];
for (int j=1;j<=lg;j++) for (int i=1;i<=n-(1<<(j-1))+1;i++) ST[i][j]=max(ST[i][j-1],ST[i+(1<<(j-1))][j-1]);
for (int i=1;i<=m;i++){
int ll,rr;
cin>>ll>>rr;
cout<<find(ll,rr)<<endl;
}
}
求大佬救救orzorz
回复
共 8 条回复,欢迎继续交流。
正在加载回复...