算法学习
文章平均质量分 55
yw在路上
一个热爱编程的少年
展开
-
【算法学习】树状数组
lowbit(x)函数是求x最低位1和改位后面的0够成的数的大小,比如 4 的二进制 100,最低位1及其后面的0 是 100,所以lowbit(4) = 4。从图片可以看出,数组每个元素维护的是一段区间的和,通过lowbit函数就可以算出每个元素维护的区间,原理有些复杂,感兴趣的同学可以自信百度。k = 1,表示第 a 个数加b)。给定 n 个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列[a,b]的连续和。输出若干行数字,表示k=0 时,对应的子数列[a, b]的连续和。原创 2024-04-23 14:43:51 · 329 阅读 · 0 评论 -
【算法学习】线段树基础版
根结点维护的是区间1 到 4,结点权值是该区间的和,再将区间一份为二,其左儿子维护的是 1 - 2,右儿子维护的是 3 - 4 ,以此类推,直到结点维护的区间长度为1。线段树可以理解为一个二叉树,如果是利用线段树求区间的和,那么每个结点的权值维护的是结点所维护区间的和,再将该区间一分为二,分别交由左右儿子维护。从根节点开始,目标区间和左子树有交集,递归左子树,目标区间和右子树有交集 ,递归右子树;从根节点开始,目标区间和左子树有交集,递归左子树,目标区间和右子树有交集 ,递归右子树;原创 2024-04-23 12:41:04 · 573 阅读 · 0 评论