
树状数组与线段树
青衫客36
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode-53. 最大子数组和
发现这一类的区间都是包含nums[i]的,所以我们要想在里面找最大值的话,就要让前面那一部分最大,前面这一部分其实就是所有以nums[i - 1]为结尾的区间,最大值为f[i - 1],所以第一类区间的最大值为f[i - 1] + nums[i]f[i]为这两类各自的最大值再取max。定义f[i]是所有以nums[i]为结尾的区间中的最大和,由这个定义出发,我们看看f[i]与f[i-1]有什么递推关系。综上,f[i] = max{nums[i], f[i - 1] + nums[i]}原创 2023-03-21 19:27:42 · 357 阅读 · 0 评论 -
Acwing 1270. 数列区间最大值
【代码】Acwing 1270. 数列区间最大值。原创 2022-10-08 16:24:20 · 132 阅读 · 0 评论 -
Acwing 1264. 动态求连续区间和(线段树版)
线段树所有叶子节点必然在最下面的两层中。考虑倒数第二层的节点,其个数一定小于 n,那么从倒数第二层一直到根节点的节点数一定小于 2n,最后一层的节点数最多是是倒数第二层的两倍,那么也小于 2n,所以总共小于 4n。原创 2022-10-08 12:20:46 · 143 阅读 · 0 评论 -
Acwing 1265. 数星星
【代码】Acwing 1265. 数星星。原创 2022-10-07 22:03:21 · 160 阅读 · 0 评论 -
Acwing 1264. 动态求连续区间和(树状数组版)
lowbit(x): x & (-x) 返回2^k,k为x的二进制表示中末尾0的个数。c[x]存的是(x - lowbit(x),x]之间这些数的和。原创 2022-10-07 21:06:22 · 192 阅读 · 0 评论