差分题目总和

devtools/2024/10/24 18:56:06/

二维差分

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

题目描述

给定一个大小为 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.ppmy.cn/devtools/128495.html

相关文章

Jupyter notebook和Conda使用

Jupyter notebook和Conda使用 文章目录 Jupyter notebook和Conda使用AnacondaJupyter notebook简介页面使用技巧编写格式自动补全查看函数文档魔术命令远程访问交互式常用快捷键 Markdown数学公式LaTeX Anaconda Anaconda是一个开源的Python发行版本,其包含了conda…

大模型入门到精通!大模型应用开发极简入门(含PDF)

大模型的出现正悄然改变人们的生活与工作方式,比如ChatGPT-4、文心一言、通义千问等语言大模型。它们已帮助很多办公室“白领”们在解决日常工作问题,如制定计划、撰写实施方案,甚至制作美化PPT等(笔者及身边的同事在工作中还经常…

小程序如何根据用户的不同显示不同导航栏

小程序可以根据用户的不同显示不同的导航栏,这通常通过自定义底部导航栏(tabBar)来实现。以下是实现这一功能的主要步骤和要点: 一、配置全局文件 在小程序的全局配置文件app.json中,需要将tabBar的custom属性设置为…

怎么提取pdf的某一页?批量提取pdf的某一页的简单方法

怎么提取pdf的某一页?在日常工作与学习中,我们经常会遇到各式各样的PDF文件,它们以其良好的兼容性和稳定性,成为了信息传输和存储的首选格式。然而,在浩瀚的文档海洋中,有时某个PDF文件中的某一页内容尤为重…

[Unity Demo]从零开始制作空洞骑士Hollow Knight第十六集(下篇):制作小BOSS龙牙哥

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、制作小BOSS龙牙哥 1.导入素材制作动画2.制作两种攻击行为3.制作从惊醒到转身到走路or跑步行为总结 前言 hello大家好久没见,之所以隔了一天时间…

如何将闲置平板变为电脑显示器?GameViewer远程助你低成本实现0门槛副屏串流!

家里有闲置的平板还能把它变成电脑显示器?这么不可思议的操作,使用网易GameViewer远程就能助你低成本实现0门槛副屏串流。关于副屏串流,可能还有一部分人不太清楚是什么,在这里简单解释一下,就是能让你多一块显示屏进行…

Star Tower:智能合约的安全基石与未来引领者

在区块链技术的快速发展中,智能合约作为新兴的应用形式,正逐渐成为区块链领域的重要组成部分。然而,智能合约的可靠性问题一直是用户最为关心的焦点之一。为此,Star Tower以其强大的技术实力和全面的安全保障措施,为智…

探索 Web Audio API 的奇妙世界

Web Audio API 是一项强大而灵活的 JavaScript API,它允许开发者在网页中处理和生成音频。本文将带您深入了解 Web Audio API 的基本概念,并介绍一些令人兴奋的应用场景。 1. 什么是 Web Audio API? Web Audio API 是一组用于处理和生成音频…