@[橙小汁](/space/show?uid=49655) f数组太大了
by WA鸭鸭 @ 2019-01-25 22:03:35
@[橙小汁](/space/show?uid=49655) 哦不我眼瞎qwq
by WA鸭鸭 @ 2019-01-25 22:03:51
@[橙小汁](/space/show?uid=49655) 可能是块读的问题,反正我膜改了一下去了块读就A了P1816 (就是rmq模板)
by 二次离线莫队 @ 2019-01-25 22:49:11
我魔改了一下
```cpp
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,q;
int f[N][18],lg[N]={-1};
inline int read()
{
int x=0;
bool f=false;
char ch;
do{
ch=getchar();
if(ch=='-') f=true;
}while(!isdigit(ch));
while(isdigit(ch)){
x=(x<<3)+(x<<1)+ch-'0';
ch=getchar();
}
return f?-x:x;
}
void RMQ()
{
for(int j = 1; j <= lg[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]);
}
int main()
{
n = read(), q = read();
for(int i = 1; i <= n; ++i) lg[i]=lg[i>>1]+1;
for(int i = 1; i <= n; i++) f[i][0] = read();
RMQ();
while(q--)
{
int x = read(), y = read();
int j = lg[y-x+1];
printf("%d\n", max(f[x][j], f[y-(1 << j)+1][j]));
}
return 0;
}
```
by 康师傅 @ 2019-01-25 23:02:00
谢谢谢谢,我快读还是以前的版本,忘记更新read了谢谢 @[康师傅](/space/show?uid=136822)
by 橙子汁 @ 2019-01-26 15:43:51
@[二次离线莫队](/space/show?uid=180306) 谢谢谢谢
by 橙子汁 @ 2019-01-26 15:44:07