随笔分类 -  树状数组

摘要:解题思路 这道题目要求实现一个数据结构,支持两种操作: 区间更新:将区间[x,y]内的每个数加上一个值k 单点查询:查询某个位置x的值 这是一个典型的区间更新与单点查询问题。题目提供的代码使用了带有懒标记的线段树解法。 方法选择 线段树解法具有以下特点: 预处理时间:O(n)构建线段树 区间更新:O 阅读全文
posted @ 2025-05-21 10:00 CRt0729 阅读(46) 评论(0) 推荐(0)
摘要:描述 有一个 n 个元素的数组,每个元素初始均为 0。有 m 条指令,要么让其中一段连续序列数字反转——0 变 1,1 变 0(操作 1),要么询问某个元素的值(操作 2)。 例如当 n=20 时,10 条指令如下: 输入 第一行包含两个整数 n,m,表示数组的长度和指令的条数; 以下 m 行,每行 阅读全文
posted @ 2023-05-31 22:52 CRt0729 阅读(40) 评论(0) 推荐(0)
摘要:描述 NK 中学组织同学们去五云山寨参加社会实践活动,按惯例要乘坐火车去。由于 NK 中学的学生很多,在火车开之前必须清点好人数。 初始时,火车上没有学生。当同学们开始上火车时,年级主任从第一节车厢出发走到最后一节车厢,每节车厢随时都有可能有同学上下。年级主任走到第 m 节车厢时,他想知道前 m 节 阅读全文
posted @ 2023-05-31 21:47 CRt0729 阅读(68) 评论(0) 推荐(0)
摘要:描述 校门外有很多树,学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两种操作: K=1,读入 l,r 表示在 l 到 r 之间种上一种树,每次操作种的树的种类都不同; K=2,读入 l,r 表示询问 l 到 r 之间有多少种树。 注意:每个位置都可以重复种树。 输入 阅读全文
posted @ 2023-05-31 21:08 CRt0729 阅读(52) 评论(0) 推荐(0)
摘要:先来看几个问题吧。 1.什么是树状数组? 顾名思义,就是用数组来模拟树形结构呗。那么衍生出一个问题,为什么不直接建树?答案是没必要,因为树状数组能处理的问题就没必要建树。和Trie树的构造方式有类似之处。 2.树状数组可以解决什么问题 可以解决大部分基于区间上的更新以及求和问题。 3.树状数组和线段 阅读全文
posted @ 2023-05-31 20:09 CRt0729 阅读(119) 评论(0) 推荐(0)