求助:本地对了线上没过的神奇代码

P3865 【模板】ST 表

@[MYXaoiing](/user/1163927) 您要不要参考我的看一下? 验证码:m7bx 祭 ```cpp //t:800ms m:125.00MB #include <bits/stdc++.h> using namespace std; namespace my{ void IOS(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); return ; } const int N=1e5+5; int f[20][N]; int a[N]; int n,q; void init(){ for(int i=1;i<=n;i++)f[0][i]=a[i]; for(int i=1;(1<<i)<=n;i++){ for(int j=1;j+(1<<i)-1<=n;j++)f[i][j]=max(f[i-1][j],f[i-1][j+(1<<(i-1))]); } } void solve(){ IOS(); cin>>n>>q; for(int i=1;i<=n;i++)cin>>a[i]; init(); while(q--){ int l,r; cin>>l>>r; int len=log2(r-l+1); cout<<max(f[len][l],f[len][r-(1<<len)+1])<<'\n'; } } } int main(){ // freopen("","r",stdin); // freopen("","w",stdout); int _=1; while(_--)my::solve(); return 0; } ```
by kevinZ99 @ 2024-04-16 19:52:44


@[MYXaoiing](/user/1163927) why n+9
by Msents @ 2024-04-16 19:53:56


@[Msents](/user/198964) 调试的时候怕lg2没算够加的
by MYXaoiing @ 2024-04-16 19:54:58


@[MYXaoiing](/user/1163927) 刚好ub,,,
by Msents @ 2024-04-16 19:56:15


@[MYXaoiing](/user/1163927) 建议去掉再交一发
by Msents @ 2024-04-16 19:58:34


@[Msents](/user/198964) 谢谢过了 ~~(照理说这个+9会越界但为什么没RE啊啊啊啊啊()~~
by MYXaoiing @ 2024-04-16 20:02:15


@[kevinZ99](/user/1117080) 这就是dalao写的代码吗我怎么看不懂( ~~(求解释)~~
by MYXaoiing @ 2024-04-16 20:03:57


@[Msents](/user/198964) 能问下ub是什么意思吗……(
by MYXaoiing @ 2024-04-16 20:23:17


@[MYXaoiing](/user/1163927) 未定义行为,包括但不限于 访问越界 有符号整数溢出 形如 x++ + ++x 这种够使以及指望表达式 f()+g() 从左到右运行 读没被初始化的东西 ,整出ub了编译器甚至可以选择原神启动
by Msents @ 2024-04-16 22:38:12


|