太难过了,好伤感情

P3865 【模板】ST 表

@[橙小汁](/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


|