后两个是WA
by Casto2 @ 2023-05-03 15:45:05
可以看看我的:
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,m,f[1000005][22],l,r;
inline int re() {
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;
}
signed main() {
n=re(),m=re();
for(int i=1;i<=n;i++) {
f[i][0]=re();
}
for(int j=1;j<=21;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]);
}
}
while(m--) {
l=re(),r=re();
int k=log2(r-l+1);
cout<<max(f[l][k],f[r-(1<<k)+1][k])<<"\n";
}
return 0;
}
```
by xingcode @ 2023-05-08 20:50:31
```cpp
for(int i=1;i+(1<<j-1)<=n;i++)
{
st[i][j]=max(st[i][j-1],st[i+(1<<j-1)][j-1]);
}
```
改为
```cpp
for(int i=1;i+(1<<j)-1<=n;i++)
{
st[i][j]=max(st[i][j-1],st[i+(1<<j-1)][j-1]);
}
```
by aeiouaoeiu @ 2023-05-21 18:55:44