另外这份代码后面几个点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