差分
文章平均质量分 69
oj
Ypuyu
Ypuyu
展开
-
[差分+模板] 差分模板
文章目录0. 前言1. 一维差分2. 二维差分 0. 前言 对数组某个区间内都加、减一个值的话,差分数组可以达到 O(1)O(1)O(1) 的时间完成这个操作。 预处理得到的差分数组的前缀和是原数组。对原数组 [l,r][l, r][l,r] 区间加上 ccc,则仅需对差分数组的 a[l]+ca[l] + ca[l]+c,a[r+1]−ca[r + 1] - ca[r+1]−c 即可。 最后再求一遍前缀和即可。 差分数组的定义为:差分数组的前缀和是原数组,那么怎么构造一个差分数组呢?其实我们并不需要想太多。原创 2020-10-20 09:20:58 · 446 阅读 · 0 评论 -
[E差分] lc1893. 检查是否区域内所有整数都被覆盖(差分计数+模拟+双周赛54_1)
文章目录1. 题目来源2. 题目解析 1. 题目来源 链接:1893. 检查是否区域内所有整数都被覆盖 2. 题目解析 双周赛第一题,谁正经直接写差分啊,数据范围这么小…直接暴力就行了。 方法一:暴力 判断每个点是否在区间中出现过就行了,只要有一个区间包含该点,则该点就出现过。 方法二:差分 这方法有点秀。 区间 [l, r] 给定,运用差分的思想,diff[l]++,diff[r+1]--,最后做一遍前缀和,表示有一个区间覆盖了 [l,r] 的所有数。 前缀和统计完毕后仅需判断 [left, ri原创 2021-07-23 00:40:27 · 142 阅读 · 0 评论 -
[差分] aw3729. 改变数组元素(差分+区间合并+好题)
文章目录1. 题目来源2. 题目解析 1. 题目来源 链接:3729. 改变数组元素 相关:[区间合并+模板] 区间合并模板(贪心+区间问题) 2. 题目解析 很明显的区间合并问题,但是可以使用差分来做,需要稍作改动。抽象算法的能力可能是最为缺失的。 区间合并: 区间合并时间是 O(nlogn)O(nlogn)O(nlogn),是取决于排序的时间复杂度。 相当于将一个区间 [l,r][l, r][l,r] 的数字全部赋值为 1。 最后将这些区间合并即可,区间中的数字全为 1。 差分: 由区间合并的原创 2021-07-01 19:51:18 · 147 阅读 · 0 评论 -
[差分] aw3617. 子矩形计数(差分+好题+思维)
文章目录1. 题目来源2. 题目解析 1. 题目来源 链接:3617. 子矩形计数 2. 题目解析 问题思维过程比较平滑。思维难度并不高。 当 a 数组为 0 时,本行全为 0,当 b 数组为 0 时,本列全为 0。 若答案满足的全 1 子矩阵,可表示为 k=h*w,那么等价于 a 数组中含有 h 长度连续 1,b 数组含有 w 长度的连续 1。 故问题转化为求出一个数组 s,s[i] 表示 a 或 b 数组中长度为 i 的连续 1 的区间个数。 然后思路就被卡在这没动过了… 直接放 y总笔记了: 将求原创 2021-06-02 21:51:21 · 101 阅读 · 2 评论