树状数组&&线段树
aeipyuan
渣渣一枚,请多指教。。。。。。
展开
-
树状数组
树状数组定义树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只能查询其中一个元素的值(如果加入多个辅助数组则可以实现区间修改与区间查询)。作用:实现求数组前缀和实现批量更新区间和快速查询(实质是两个端点前缀和相减得到)下图为树状数组实现原理,红色箭头代表更新操作的原创 2020-05-09 19:26:25 · 118 阅读 · 0 评论 -
封装线段树实现基本功能
线段树封装1. 结点类TreeNode/* 树结点*/function TreeNode(x, y, val) { this.x = x; this.y = y; this.val = val || null;}2. 线段树类通过options可以传入pushUp函数设置父子结点关系,root记录线段树根节点function SegTree(options)...原创 2020-05-03 13:56:59 · 263 阅读 · 0 评论 -
最大子序和 动态规划|线段树实现
最大子序和 动态规划|线段树实现给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。链接:https://leetcode-cn...原创 2020-05-03 13:42:56 · 183 阅读 · 0 评论 -
HDU 1541 STAR(树状数组)
StarsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13280 Accepted Submission(s): 5184Problem DescriptionAstronomers often examine sta...原创 2018-11-30 18:18:38 · 163 阅读 · 0 评论 -
A.Ocean的礼物线段树
A: Ocean的礼物 Time Limit: 2 s Memory Limit: 128 MB Submit My Status Problem Description 皇家理工存在一段很神奇的路段,这段路由nn个格子组成,每个格子都有一个数字,你可以走这段路的任意一段。这段路的神奇之处就在于,如果你所处的这个格子数字和你经过的前一个格子数字不相同的话,你就可以获得一个礼物(初始一定可以...原创 2018-08-14 10:05:09 · 144 阅读 · 0 评论 -
HDU 1166 敌兵布阵(线段树/树状数组模板题)
敌兵布阵Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 128380 Accepted Submission(s): 53795Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头...原创 2018-11-30 21:45:48 · 106 阅读 · 0 评论