@[yyy_Logic](/user/877156) 第18行 `if(c=='-')`-> `if(c=='-') f=-1;`
by yuanxiuan @ 2023-07-29 20:01:38
或者直接删掉也行
by yuanxiuan @ 2023-07-29 20:02:41
@[yuanxiuan](/user/614716)
改了 还是8分TLE
QAQ
```cpp
#include<bits/stdc++.h>
//#include<cstdio>
//#include<cmath>
//#include<algorithm>
using namespace std;
typedef long double ld;
typedef long long ll;
#define endl '\n'
#define test printf("\ntest\n")
/*·········································*/
const int N = 1e6+10;
int Max[N][20];//Max[i][j]表示第i个数到其后面第2的j次方的数中的最大值
int n,m;
inline int read(){
char c=getchar();
int x=0,f=1;
while(c<'0'||c>'9'){
if(c=='-'){
f=-1;
c=getchar();
}
}
while(c>='0'&&c<='9'){
x=x*10+c-'0';
c=getchar();
}
return f*x;
}
inline void write(int x)
{
if(x<0)putchar('-'),x=-x;
if(x>9)write(x/10);
putchar(x%10+'0');
}
inline int query(int l ,int r){
// int log2[N];
// log2[1]=0;
// for(int i=2;i<=n;i++){//预存log2的值
// log2[i]=log2[i>>1]+1;
// }
// int k=log2[r-l+1];
int k=log2(r-l+1);
return max(Max[l][k],Max[r-(1<<k)+1][k]);
}
inline void solve()
{
n=read(),m=read();
for(int i=1;i<=n;i++)//初始化区间(i,i)的最大值为其本身
Max[i][0]=read();
//关键
for(int j=1;j<=20;j++){
for(int i=1;i<=n-(1<<j)+1;i++){//注意边界
Max[i][j]=max(Max[i][j-1],Max[i+(1<<(j-1))][j-1]);//(1<<(j-1))相当于2的j-1次方
}
}
for(int i=1;i<=m;i++){
int l=read(),r=read();
write(query(l,r));
printf("\n");
}
}
int main()
{
// ios::sync_with_stdio(0);
// cin.tie(0),cout.tie(0);
int t = 1;
// cin>>t;
while(t--) solve();
return 0;
}
```
by yyy_Logic @ 2023-07-30 23:33:47
@[yyy_Logic](/user/877156)
这样
```cpp
inline int read(){
char c=getchar();
int x=0,f=1;
while(c<'0'||c>'9'){
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
x=x*10+c-'0';
c=getchar();
}
return f*x;
}
```
by yuanxiuan @ 2023-07-31 07:47:37
@[yuanxiuan](/user/614716)
过了!!原来是快读超时了QAQ
谢谢佬佬!!!
Orz
by yyy_Logic @ 2023-07-31 11:00:56