一种序列 O(k) 单点加,O(k n ^ {1 / k}) 查询区间和的方法(O(n) 空间?)

就是把 [0,n] 中的数用某个 B 进制表示,B 满足 n<B3,然后记录 sum1k,i 表示(应该是)B 进制下下标以 i 为开头的数的和。

反正当 k=2 时就是经典的根号平衡操作——O(1) 单点加,O(n) 区间查询(查询前缀后差分)。

感觉本质和线段树差不多,不过线段树是令 k=log2n,那么单点加是 log2n 的,查询区间和是 O(n1/log2nlog2n=nlogn2log2n=log2n) 的。
posted @   SkyMaths  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
历史上的今天:
2023-11-08 那些话
2023-11-08 学习计划
点击右上角即可分享
微信分享提示