BIT Interval MAX

首先,a[]数组仍然是保存原始数据。c[i]将会保存从a[1]到a[i]的最值。

单点修改时间复杂度log2(n)^2,区间查询时间复杂度log2(n)

1。单点更新:

直接更新a[i],然后再更新h[i]。若h[i]的值有可能改变的,则表示区间一定包含i结点。那么就两层lowbit更新所有可能的h。

单点更新时间复杂度O(logn*logn)
2。区间查询最大值:

设要查询的区间为[L,R],那么就从h[R]开始找,要找[L,R]内的所有区间。所以依然是两层lowbit,然后R向前跳直到跳到L前面。

区间查询最大值时间复杂度O(logn*logn)
以前一直把树状数组当作求前缀的工具,但事实上,树状数组是一种分块的方式,因为分块的方式比较独特,所以在求前缀的过程中非常方便;

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:11
点赞 评论 收藏
分享
我是没经验的毕业生,这啥情况啊会不会是hr在刷kpi
JamesGosli...:字节boss属于是群发了,我都快入职字节了,其他部门还在和我boss打招呼
点赞 评论 收藏
分享
Lorn的意义:你这标个前端是想找全栈吗?而且项目确实没什么含金量,技术栈太少了,边沉淀边找吧 现在学院本想就业好一点四年至少得高三模式两年加油吧
点赞 评论 收藏
分享
asdasdasda...:19岁,不容易啊可能升个本会好点,现在学历歧视太严重了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务