数据结构
文章平均质量分 93
.SAI.
十年感悟 两年参悟
展开
-
区间维护(树状数组)
问题描述:题目描述解题思路:有关树状数组的基本知识这里就不再赘述,我们只需要知道他可以处理区间维护性的问题以及可修改的RMQ问题等,效率较高。下面是有关线段树的操作单点修改void update(int x,int k){ for(;x<=n;x=x+(x&(-x))) t[x]+=k; //x位置的修改只对他的祖先造成影响,而x的祖先恰好是x+x&-x一路递增,因此直接修改x的祖先的值即可 return ;}区间查询int sum(int原创 2022-01-29 18:53:31 · 1504 阅读 · 0 评论 -
区间维护(分块大法+卡常)
题目描述:题目传送门解题思路:首先我们先忽略题目的标题(树状数组模板),我们来尝试一种新的算法——分块。分块思想分块是一种优美的暴力(by DFT)。他的核心思想在于将一个要维护的区间(长度为 nnn)分成又穷个 n\sqrt nn 个子区间来进行分别维护。每个子区间的长度都为 n\sqrt nn,将我们所要查询的区间所覆盖的每个子区间的信息进行整合,就是我们要查询的区间的信息。这样子将区间分块来处理有什么好处呢?因为它可以将对一个区间维护的复杂度均摊到每一个长度为 n\sqrt原创 2022-01-27 13:09:37 · 977 阅读 · 0 评论