上一页 1 ··· 55 56 57 58 59 60 61 62 63 ··· 81 下一页
摘要: 由于有两个操作,我们要对乘法和加法设置一个优先级 我们来看看先乘后加,lazy2表示乘数,lazy1表示加数(前者初始值为\(1\),后者初始值为\(0\)) 根据我们对lazy的理解,一个节点的和的真实值,为这个节点到根节点的路径中,对每一个节点依次先乘lazy2再加lazy1得到的最终结果 假设 阅读全文
posted @ 2023-12-23 14:51 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 这题目是扫描线另一经典应用:求矩形并的周长 我们对\(c\)数组的求法跟求面积的时候一样,考虑如何统计答案 我们考虑什么情况会对答案做出贡献 可以发现,我们可以将边分成垂直的边和水平的边,用相同的方法分别统计再相加,下面以求垂直的边为例 垂直的边对答案做出贡献的时候只会在某一次修改的时候 假设在这次 阅读全文
posted @ 2023-12-22 22:20 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 查询奶牛身高那道题目也可以用线段树做,而且复杂度与树状数组加倍增的复杂度一样,都是\(O(logn)\) update 2024.7.29 这种题目千万不要线段树+二分 阅读全文
posted @ 2023-12-22 21:35 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 特别注意下放的时候一定要判断是否开了点 阅读全文
posted @ 2023-12-22 21:27 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 我们先不考虑动态开点怎么开,先想一下普通线段树怎么做 我们需要注意到题目中一个比较显眼的提示:只要求最终数列的所有元素和 这提示我们不用时时刻刻维护每个节点的和 那我们维护什么呢? 由于是要把小于\(k\)的数变成\(k\),我们可以尝试记录每个节点的最小值 在任意时刻,根据我们对lazy的理解,一 阅读全文
posted @ 2023-12-22 21:21 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 这道题目非常有助于提高我们对lazy的理解 我们设lazy为0表示全部改成0,为1表示全部改成1,为2表示翻转一次,为-1表示没有操作 按照我们对lazy的理解,一个节点真实的信息,等价于这个节点到根节点的路径上的节点的lazy的某个“和”操作 那么在这道题目的“和”操作,就是深度从深到浅节点的la 阅读全文
posted @ 2023-12-21 23:42 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要: ![](https://img2023.cnblogs.com/blog/2490134/202312/2490134-20231221223314438-1683623806.png) ![](https://img2023.cnblogs.com/blog/2490134/202312/2490134-20231221223322764-1117172552.png) 阅读全文
posted @ 2023-12-21 22:33 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 其实这个mid是多余的,不用定义 update 2024.5.15 查询的代码不要这么写,最好像“你能回答这些问题吗”这道题目的打卡代码那样子写,那个才更加通用 阅读全文
posted @ 2023-12-21 22:16 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 这里主要是对代码的解释 首先是对蓝书的简单做法的代码解释 我们把每一个节点看做比较独立的一个个体,他的cnt表示他所代表的区间是否在他本身的影响下被完全覆盖,这里不太好描述,下面举一个例子 比如三号节点(代表区间为[4,6])的cnt>0表示这一段区间在他这里已经被完全覆盖了,cnt=0表示在他这里 阅读全文
posted @ 2023-12-19 14:41 最爱丁珰 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 首先是一种对于这个问题的新的建树方法 当然也可以按照原来的建树方法建树,最后统计相邻的都被涂色的点就好了 然后注意lazy标记最开始要初始化为0,不能为1或2,为0的时候表示自己当前的操作已经全部传递给子节点了 注意lazy表示的是自己已经完成修改,但是子节点还没有修改,无论是这道题目还是普通的区间 阅读全文
posted @ 2023-12-18 20:38 最爱丁珰 阅读(16) 评论(0) 推荐(0) 编辑
上一页 1 ··· 55 56 57 58 59 60 61 62 63 ··· 81 下一页