为什么会T

P3865 【模板】ST 表

```cpp #include<bits/stdc++.h> using namespace std; int maxs(int a,int b){ return a>b?a:b; } 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 stx[100005][30],log_2[100005],k,n,a[100005],m,t,l,r; int main() { n=read();t=read(); for(int i=1;i<=n;i++) log_2[i]=int(log2(i)); for(int i=1;i<=n;i++) a[i]=read(); for(int i=1;i<=n;i++) stx[i][0]=a[i]; for(int j=1;(1<<j)<=n;j++) for(int i=1;i<=n-(1<<j)+1;i++) stx[i][j]=maxs(stx[i][j-1],stx[i+(1<<j-1)][j-1]); while(t--) { l=read(); r=read(); k=log_2[r-l+1]; cout<<maxs(stx[l][k],stx[r-(1<<k)+1][k])<<endl; } return 0; } ```
by sto_0616allen_orz @ 2024-01-31 18:45:21


T三个点
by sto_0616allen_orz @ 2024-01-31 18:45:45


@[sto_0616allen_orz](/user/1037997) 尝试快写
by Claire0918 @ 2024-01-31 18:58:37


@[sto_0616allen_orz](/user/1037997) log 不要预处理,查询时再计算
by Claire0918 @ 2024-01-31 18:59:23


@[sto_0616allen_orz](/user/1037997) 建议两个维反过来
by 大眼仔Happy @ 2024-01-31 19:07:23


输出用标准输出就能 A
by _zuoqingyuan @ 2024-01-31 19:10:53


那估计你写假了,我scanf,printf,都能过
by Fractured_Angel @ 2024-01-31 19:13:32


你要不试试log递推预处理,不要直接调用函数?
by Fractured_Angel @ 2024-01-31 19:15:00


别用endl,用`\n`
by rhn7 @ 2024-01-31 19:30:57


就改这一处不开O2最慢的点才311ms
by rhn7 @ 2024-01-31 19:34:46


| 下一页