不能理解

P3865 【模板】ST 表

另外这份代码后面几个点T了 是因为log()太慢了吗
by _LiMLE_ @ 2021-10-02 15:51:33


@[_LiMLE_](/user/480934) **请注意最大数据时限只有 0.8s,数据强度不低,请务必保证你的每次查询复杂度为 $O(1)$ 。若使用更高时间复杂度算法不保证能通过。**
by HGJH°L @ 2021-10-02 15:56:12


@[_LiMLE_](/user/480934) 1. C++ log() 默认是自然对数,这里需要用的是 log2,程序中用换底公式做的。 2. 两端区间重合不会有问题,但注释中的写法可能包含区间外的部分,显然会错。
by rui_er @ 2021-10-02 15:56:12


@[HGJH°L](/user/68574) @[rui_er](/user/122461) 谢谢
by _LiMLE_ @ 2021-10-02 15:57:58


第一处:显然要 $+1$,不然如果 $1\sim n$ 长度为 $2$ 的次幂时就错了 第二处:显然。当 $l\sim r$ 的长度不是 $2$ 的次幂的时候,$l+2^i+2^i$ 就超过了 $r$ 。 太慢不是 $\log$ 的锅。 ```cpp n=read();m=read(); for(int i=1;i<=n;i++) cin>>a[i]; ``` ![](https://cdn.luogu.com.cn/upload/image_hosting/ya1v8uql.png)
by xfrvq @ 2021-10-02 15:58:30


@[OneZzz6174](/user/368107) 草,我的锅
by _LiMLE_ @ 2021-10-02 15:59:40


|