当前位置: 首页 > news >正文

差分题目总和

二维差分

二维差分应用题目:矩形区域加值

题目描述

给定一个大小为 n × n n \times n n×n 的二维矩阵,初始时矩阵中的所有元素都为 0。你需要进行 m m m 次操作,每次操作向某一个矩形区域内的所有元素加上一个固定的值。请你在所有操作完成后输出最终的矩阵。

输入格式
  • 第一行包含两个正整数 n n n m m m,表示矩阵的大小和操作的次数。
  • 接下来 m m m 行,每行包含五个整数 x 1 , y 1 , x 2 , y 2 , c x_1, y_1, x_2, y_2, c x1,y1,x2,y2,c,表示向以 ( x 1 , y 1 ) (x_1, y_1) (x1,y1) 为左上角、 ( x 2 , y 2 ) (x_2, y_2) (x2,y2) 为右下角的矩形区域内的所有元素加上值 c c c
输出格式

输出 n × n n \times n n×n 的矩阵,表示在所有操作完成后每个位置的值。

样例输入
5 3
1 1 3 3 2
2 2 5 5 3
3 1 4 4 1
样例输出
2 2 2 0 0
2 5 5 3 0
3 6 6 4 3
1 4 4 4 3
0 3 3 3 3
数据范围
  • 对于 100 % 100\% 100% 的数据, 1 ≤ n ≤ 1000 1 \leq n \leq 1000 1n1000 1 ≤ m ≤ 10000 1 \leq m \leq 10000 1m10000
  • 1 ≤ x 1 , y 1 , x 2 , y 2 ≤ n 1 \leq x_1, y_1, x_2, y_2 \leq n 1x1,y1,x2,y2n,保证输入的矩形区域是合法的,即 x 1 ≤ x 2 x_1 \leq x_2 x1x2 y 1 ≤ y 2 y_1 \leq y_2 y1y2
  • − 1000 ≤ c ≤ 1000 -1000 \leq c \leq 1000 1000c1000

一维差分

一维差分应用题目:区间加值

题目描述

给定一个长度为 n n n 的数组,初始时数组中的所有元素都为 0。你需要进行 m m m 次操作,每次操作会将一个区间内的所有元素加上某个值。请你在所有操作完成后,输出最终的数组。

输入格式
  • 第一行包含两个整数 n n n m m m,表示数组的长度和操作的次数。
  • 接下来 m m m 行,每行包含三个整数 l , r , c l, r, c l,r,c,表示将数组中从位置 l l l 到位置 r r r 的所有元素加上值 c c c,即 a [ l ] a[l] a[l] a [ r ] a[r] a[r] 加上 c c c
输出格式

输出一行,包含 n n n 个整数,表示操作完成后数组的最终值。

样例输入
5 3
1 3 2
2 4 3
3 5 1
样例输出
2 5 6 4 1
题目解析

初始时数组为 [0, 0, 0, 0, 0],每次进行区间加值操作后数组的变化如下:

  1. 第一次操作:[1, 3, 2],将第1到第3个位置加上2,数组变为 [2, 2, 2, 0, 0]
  2. 第二次操作:[2, 4, 3],将第2到第4个位置加上3,数组变为 [2, 5, 5, 3, 0]
  3. 第三次操作:[3, 5, 1],将第3到第5个位置加上1,数组变为 [2, 5, 6, 4, 1]

可以使用一维差分数组来高效解决这个问题。利用差分数组,我们可以将每次的区间加值操作转换为在区间的端点进行增量操作,最终通过累加差分数组来得到结果。

数据范围
  • 对于 100 % 100\% 100% 的数据, 1 ≤ n , m ≤ 100000 1 \leq n, m \leq 100000 1n,m100000 − 1000 ≤ c ≤ 1000 -1000 \leq c \leq 1000 1000c1000

http://www.mrgr.cn/news/54780.html

相关文章:

  • 【电子通识】热敏打印头的结构类型和特点
  • 第十五届蓝桥杯Java大学b组(解)
  • 股票与基金资料收集
  • 二叉树的模拟实现—Java数据结构
  • 使用 VSCode 通过 Remote-SSH 连接远程服务器详细教程
  • 字符串和集合的转换
  • Deformable DETR:结合多尺度特征、可变形卷积机制的DETR
  • Python画笔案例-089 绘制 三角圆图
  • 11.useComponentDidMount
  • STL-vector+题目
  • hadoop的MapReduce提交任务到yarn实操
  • 【Redis】数据结构(下)
  • fftw 的安装与编译
  • 算法题——二分查找类型题大全
  • java实现文件变动监听
  • vulnhub靶场之JOY
  • 提示词高级阶段学习day2.1-在提示词编写中对{}的使用教程
  • 卷积神经网络
  • R语言中的stat_compare_means():如何解决anova目标对象的方法问题
  • 我对需求分析的理解