《洛谷深入浅出进阶篇》P3397 地毯————二维差分

上链接:P3397 地毯 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)icon-default.png?t=N7T8https://www.luogu.com.cn/problem/P3397

上题干:

题目描述

在 n×n 的格子上有 m 个地毯。

给出这些地毯的信息,问每个点被多少个地毯覆盖。

输入格式

第一行,两个正整数 n,m。意义如题所述。

接下来 m 行,每行两个坐标 (x1​,y1​) 和 (x2​,y2​),代表一块地毯,左上角是 (x1​,y1​),右下角是(x2​,y2​)。

输出格式

输出 n 行,每行 n 个正整数。

第 i 行第 j 列的正整数表示 (i,j) 这个格子被多少个地毯覆盖。

输入输出样例

输入 #1复制

5 3
2 2 3 3
3 3 5 5
1 2 1 4

输出 #1复制

0 1 1 1 0
0 1 1 0 0
0 1 2 1 1
0 0 1 1 1
0 0 1 1 1

说明/提示

样例解释

覆盖第一个地毯后:

00000
01100
01100
00000
00000

覆盖第一、二个地毯后:

00000
01100
01211
00111
00111

覆盖所有地毯后:

01110
01100
01211
00111
00111

数据范围

对于 20% 的数据,有 n≤50,m≤100。

对于 100% 的数据,有 n,m≤1000。

在上一篇已经讲过了差分是什么,和一维差分:

《洛谷深入浅出进阶篇》 P2367语文成绩——差分-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/louisdlee/article/details/134400596 这章的内容来介绍一下,二维差分。

假设b[i,j]为差分数组,a[i,j]为原数组

b[i,j]和a[i,j]满足下面这个性质:

 \sum_{i=1}^{n}\sum_{j=1}^{m}b_{i,j}=a_{i,j}

(只要是差分就应该满足这个性质)

但是根据题目的不同,差分数组的求法也有所不同

但是我们求答案的时候一定要记住四个字:前加后减

给大家举几个例子理解:

假设这是第一块地毯(原数组),

12345
21100
31100
40000
50000

那么它的差分数组可以是这样的。

12345
210-10
310-10
40000
50000

假设这是第二块地毯:

00000
00000
00111
00111
00111

那么它的差分数组我想你们应该可以想到了吧:(加了一列虚拟边界来表示,其实我们真实遍历的时候不会扫描到n*m之外的格子)

123456
200000
30100-1
40100

-1

50100-1

 我们发现:

-1的位置都是在原来矩阵的后面一列,

假设左上角为(x1,y1) 右下角为(x2,y2)

那么第一列的-1应该在 (x1,y2+1)处

第二列的-1应该在(x1+1,y2+1)处

因为我们加了虚拟边界,当-1出现在原来的边界外的时候,也不用担心。

上代码:

const int N = 1e3 + 10;
int a[N][N];
int b[N][N];
int main()
{int n, m;cin >> n >> m;while (m--) {int x1, y1, x2, y2;cin >> x1 >> y1 >> x2 >> y2;for (int i = x1; i <= x2; i++){b[i][y1]++;b[i][y2 + 1]--;}}for (int i = 1; i <= n; i++){for (int j = 1; j <= n; j++){b[i][j] += b[i][j - 1];cout << b[i][j] << ' ';}cout << endl;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/143359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高通SDX12:ASoC 音频框架浅析

一、简介 ASoC–ALSA System on Chip ,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系。 本文基于高通SDX12平台,对ASoC框架做一个分析。 二、整体框架 1. 硬件层面 嵌入式Linux设备的Audio subsystem可以划分为Machine(板…

业务连续性:确保稳健运营的关键战略

在今天的快节奏商业环境中&#xff0c;保障业务连续性是企业成功的重要保障。业务连续性不仅仅是关于应对自然灾害或技术故障&#xff0c;更是一项战略&#xff0c;涉及组织的整体准备、规划和应对能力&#xff0c;以确保在各种情况下业务的稳健运营。 一、业务连续性的定义 业…

常见希腊字母

大写希腊字母 LaTeX表示 A A l p h a B B e t a Γ G a m m a Δ D e l t a E E p s i l o n Z Z e t a H E t a Θ T h e t a I I o t a K K a p p a Λ L a m b d a M M u N N u Ξ X i O O m i c r o n Π P i P R h o Σ S i g m a T T a u Υ U p s i l o n Φ P h i X C …

Docker - 企业项目

Docker - 企业项目 因为环境原因&#xff0c;本章本人没有实际操作&#xff0c;以理论为主 容器单独没有什么意义&#xff0c;有意义的是容器的编排 Docker 4台&#xff1a;1核2G的ECS K8s 9台&#xff1a;2核4G的ECS Docker Compose Docker Swarm # manager节点初始化sw…

【C++11】线程库

文章目录 thread 线程库mutex 锁atomic 原子性操作condition_variable 条件变量实现两个线程交替打印1-100 thread 线程库 在C11之前&#xff0c;涉及到多线程问题&#xff0c;都是和平台相关的&#xff0c;比如Windows和Linux下各有自己的接口&#xff0c;这使得代码的可移植…

(Matalb时序预测)GWO-BP灰狼算法优化BP神经网络的多维时序回归预测

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、部分代码展示&#xff1a; 四、完整代码数据说明手册下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于M…

NC65 消息弹框提示和状态栏提示以及其他方式的输出或抛出

弹框提示&#xff1a;nc.ui.pub.beans.MessageDialog 用于显示状态栏提示信息&#xff1a;nc.ui.uif2.ShowStatusBarMsgUtil nc.ui.uif2.DefaultExceptionHanler exceptionHanler new nc.ui.uif2.DefaultExceptionHanler(); exceptionHanler.setContext(ctx); // 重置错误类…

01:2440----点灯大师

目录 一:点亮一个LED 1:原理图 2:寄存器 3:2440的框架和启动过程 A:框架 B:启动过程 4:代码 5:ARM知识补充 6:c语言和汇编的应用 A:代码 B:分析汇编语言 C:内存空间 7:内部机制 二:点亮2个灯 三:流水灯 四:按键控制LED 1:原理图 2:寄存器配置 3:代码 一:点…

xss总结

xss注入总结 漏洞描述 XSS&#xff08;跨站脚本攻击&#xff09;是一种常见的网络安全漏洞&#xff0c;攻击者利用该漏洞在网页中插入恶意脚本&#xff0c;以获取用户的敏感信息或执行恶意操作。 XSS中文叫做跨站脚本攻击&#xff08;Cross-site scripting&#xff09;&…

DNS服务器典型配置

文章目录 安装主程序bind和安全插件bind-root修改主配置文件/etc/named.conf正向解析 安装主程序bind和安全插件bind-root yum install bind-chroot修改主配置文件/etc/named.conf vim /etc/named.conf将listen-on和allow-query的ip或域名换成any 表示为服务器所有的IP地址启…

Java开发中解决紧耦合的方法有哪些?

Java开发中解决紧耦合的方法有哪些&#xff1f; 文章目录 Java开发中解决紧耦合的方法有哪些&#xff1f;一、基本说明二、代码演示1、使用接口&#xff08;Interface&#xff09;2、依赖注入&#xff08;Dependency Injection&#xff09;3、设计模式4、模块化5、服务层&#…

【Android】在使用约束布局(ConstraintLayout)中,当某个子View发生隐藏后,某个View无法正确显示了

问题背景 在使用约束布局&#xff08;ConstraintLayout&#xff09;中&#xff0c;当某个子View发生隐藏后&#xff0c;某个View无法正确显示了。 问题分析 比如说是一个TextView文本内容无法显示。可能你发现setText方法很明显调用了&#xff0c;但是就是无法显示。而你通过…

人工智能时代,应如何保护个人信息

文章目录 人工智能时代保护个人信息的对策1.企业行为规制第一&#xff0c;透明性。第二&#xff0c;针对生物识别信息的特别同意。第三&#xff0c;匿名化。第四&#xff0c;个人信息本地化。 2.政府部门行为规范第一&#xff0c;以必要性为前提。第二&#xff0c;以最小数据量…

http1.0、1.1、2.0、3.0

HTTP协议&#xff1a; HTTP 是 HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09;的缩写&#xff0c;它是互联网上应用最为广泛的一种网络协议&#xff0c;所有 WWW 文件都必须遵守这个标准。 HTTP1.0版本&#xff1a;功能&#xff1a; 请求中新增协…

C++ 二分查找算法:山脉数组中查找目标值

题目 给你一个 山脉数组 mountainArr&#xff0c;请你返回能够使得 mountainArr.get(index) 等于 target 最小 的下标 index 值。 如果不存在这样的下标 index&#xff0c;就请返回 -1。 何为山脉数组&#xff1f;如果数组 A 是一个山脉数组的话&#xff0c;那它满足如下条件&…

利用Nextcloud搭建企业私有云盘系统

利用Nextcloud搭建企业私有云盘系统 1. 场景介绍2. 环境准备3. 安装NextCloud4. 系统功能验证 1. 场景介绍 Nextcloud是一款免费开源的私有云存储系统&#xff0c;采用PHPMySQL开发&#xff0c;提供了多个同步客户端支持多种设备访问&#xff0c;使用Nextcloud可以快速便捷地搭…

调用一个RPC服务的三重境界

开篇词 毫无疑问微服务架构是目前最主流的大型互联网应用系统架构方式&#xff0c;因为一个大型系统被拆分为若干个子应用&#xff0c;故子应用之间相互调用进行数据读写这件事情变得像呼吸一样普遍。每个一个程序员都能够写代码实现一个RPC服务的调用&#xff0c;但不同的实现…

天软特色因子看板 (2023.11 第10期)

该因子看板跟踪天软特色因子A05006(近一月单笔流入流出金额之比(%)该因子为近一个月单笔流入流出金额之比(%)均值因子&#xff0c;用以刻画 市场日内分时成交中流入、流出成交金额的差异性特点&#xff0c;发掘市场主力资金的作用机制。 今日为该因子跟踪第10期&#xff0c;跟踪…

HarmonyOS 学习记录

时光荏苒,岁月如梭,韶华不负,未来可期。转眼间已经30岁了&#xff0c;学习的重要性不言而喻&#xff0c;在接下来的日子里记录下自己学习HarmonyOS的过程。增加一下知识储备&#xff0c;防患于未然嘛 不得不说华为的开发文档写的不错&#xff0c;开发工具直接安装后自动配置环境…