洛谷P3997地毯

Arcgis加载在线地图(内涵各种在线地图) 这三个在线地图是最常用的在线地图,其他几个类型的在线地图请自行查看。,加载出在线图层说明连接成功,点击。1、首先打开Arcgis,找到。 阅读详情

【二维差分】洛谷P3997地毯

  群里的大佬都去Online#3的提高组了,就蒟蒻(我)一个人报了普及组,做做前缀和与差分的题聊以慰籍
题目传送门

前言

  这道题在洛谷上wxz大佬的题解已经说得很清楚了(自己给自己出的题写题解),虽然题目说难度在Day2T1,但是那个1e3的数据范围刚好可以枚举,所以各种玄学暴力做法都能过。蒟蒻把自己做这道题的思路还有对差分的一些(浅薄的)理解整理下来,有不当之处欢迎各位大佬评论指出~

解题思路

  这道题本质上可以这样理解:
  给定一个矩阵,每个位置初始是0,现在给定若干个可能重叠的子矩阵,每个子矩阵的覆盖区域加上1,最后输出整个矩阵。
  我们把每个子矩阵拆成若干行,然后一个子矩阵就转换为若干个长度相同的子段,也就转化成了一维的差分。最后扫描一遍,根据标记输出就行了。
  上面是大概的思路,下面本蒟蒻会从一维差分梳理到这道题的代码,各位大佬可以直接去看最下面的代码。

一维差分

  想要做差分的题,先要理解差分到底有什么用,最常见的差分题目就是:
  给定一个序列,初始化为0,然后对其进行m次操作:
    每次操作给出该序列的一个子段[L,R],这个子段内的所有元素+1
  最后要求你输出整个序列。
  没有学过差分的话,看到题目可能会对每一个[L,R],遍历它,然后每个元素都+1。虽然可以得到答案,但是复杂度是O(n*m),要是n是10e6,10e7,基本就妥妥的TLE了。这个时候就要用到差分的思想:在区间的首尾打上标记,输出的时候根据标记输出对应的值就得到最终答案,这里举个例子让大家更好的明白:
  假设序列长度为10,3次操作给定区间是[2,8],[4,6],[1,3]。
  第一次我们在2处打上标记(+1),9处打上标记(-1),在9处打上标记是因为8还属于这个子段,到9才离开。数组为:
  0 1 0 0 0 0 0 0 -1 0
  第二次在4处打一个标记,7处也打一个
  0 1 0 1 0 0 -1 0 -1 0
  第三次在1和4处打上标记:
  1 1 0 0 0 0 -1 0 -1 0
  如果我们不在末尾打上标记,就不知道这个子段到哪里结束,有人说:那把子段每一个元素都打上标记不就知道了?可以,但是那就变成了暴力枚举了,没有任何优化。现在标记是打好了,但显然这不是最后的答案,差分还有一个重点是如何输出,差分的输出的思想是这样的:记录走到现在的标记之和,输出这个和。不理解?我们来模拟一下那个例子的输出:
  走到1,标记和是1吧,那就输出1
  到2,标记和是2,那就输出2
  在3,4,5,6,标记和都没变动,还是2
  到了7,标记和减1,输出1
  在8这里,还是1
  到了9,又减了1,输出0
  到了10,还是0

  输出为1 2 2 2 2 2 1 1 0 0,各位可以手算一下,这确实是正确的输出。个人认为,标记和其实就是你这个位置有几个子段和覆盖,当你走出一个子段,那这个位置就少了一个子段覆盖,所以加上-1,代表少了一个子段覆盖这个位置(当然也可能是-2,那说明两个子段都在这个位置结束,以此类推)。
  一维差分就讲到这里了,如果大家还不理解可以去luogu看看wxz大佬的题解,应该就会懂了。那么怎么把一维差分用到这道题呢?刚开始说过,可以把一个子矩阵拆成一行一行的,不就是几个长度相同的子段吗(只有所在行数不同),然后对于每个子段,用刚才一维差分思想打标记就行了。每个子矩阵要花费O(m)(m是行数)的时间,那么总时间复杂度就是O(n*m)(n是子矩阵数)
  最后,贴上这题的AC代码(这篇可能有点长,建议多读几遍,差分那里可以手动模拟一下(其实是我自己讲复杂了?):

#include<iostream>
#include<cstdio>
using namespace std;
int n,m;
int matrix[1100][1100];
int main(){
	ios::sync_with_stdio(false);
	cin >> n >> m;
	for(int i = 1;i <= m;i++){
		int sx,sy,ex,ey;
		cin >> sx >> sy >> ex >> ey;
		//遍历每一行
		for(int i = sx;i <= ex;i++){
			//在sy和ey+1处分别打上标记
			matrix[i][sy]++;
			matrix[i][ey+1]--; 
		}
	}
	//扫描数组
	for(int i = 1;i <= n;i++){
		int sum = 0;
		for(int j = 1;j <= n;j++){
			sum += matrix[i][j];
			printf("%d ",sum);
		}
		printf("\n");
	} 
	return 0;
}

写题解不容易,求赞
(写完刚好普及组要开始了,蒟蒻要去被虐了 /捂脸)

SAP B1中文培訓教材_SDK 公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说 立即下载

相关推荐

WINDOWS下SIP拨号的实现

在WIN10上拨打SIP电话  由于我的交换原理实验有一个是关于SIP的抓包的。而之前从未接触过SIP,所以在如何完成一次SIP拨号上遇到了不少问题,查了好多资料都没有完整的或者写的很清楚的,这里就对那些资料做一个总结,给出一个比较完善的解决方案,一来是记录此次实验的收获,而来也可能为其他有同样困惑的人解惑。  废话不多说直接开始。首先是下载一个可以拨打SIP电话的客户终端,这里我选择的是MicroSIP, 下载红圈内的文件,下载好之后直接一路安装即可,没有什么特别注意的地方。  安装好客户端之后,就需要注

weixin_43918519的博客 3807

P3397 地毯(二维差分)

题目描述 分析 dalao的分析:链接 代码 #include<iostream> #include<stdlib.h> #include<string> //#include<math.h> #include<algorithm> #include<vector> #include<cstdio> using namespace std; int n,m,x1,x2,y1,y2,sum; int a[1005][100

qz的博客 292

自动驾驶传感器选型实战:摄像头、激光雷达与毫米波雷达融合策略

自动驾驶感知系统的核心在于多传感器协同,而非单一技术优劣。摄像头擅长语义识别但受光照和天气制约;激光雷达提供高精度测距却面临成本、温漂与多径干扰等物理瓶颈;毫米波雷达则以全天候鲁棒性与精准测速成为安全底线的守门人。三者融合不是简单叠加,而是基于场景约束(如暴雨、强光、高速跟车)、成本边界(BOM控制)与时间窗口(量产节奏)的工程权衡。真实量产方案中,‘纯视觉’实为视觉主责+毫米波兜底,‘激光雷达上车’本质是用硬件真值加速算法迭代,而传统车企更倾向以毫米波为仲裁者协调冲突。理解这些底层原理,才能在传感器选型、

weixin_32495691的博客 276

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 233

电阻应变式力传感器

电阻应变式力传感器

lu_fresh_student的博客 5075

SLG大地图实战:从Tilemap到Shader的地表渲染与数据分层架构

本文深入探讨了SLG大地图开发中的关键技术挑战与解决方案,包括Tilemap系统的深度改造、地表渲染的Shader优化以及数据分层架构设计。通过实战案例,展示了如何实现视觉表现丰富、性能开销可控的SLG大地图,特别适合Unity开发者和游戏技术美术参考。

weixin_28693309的博客 520

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 318

第244篇 视觉SLAM后端之BA优化——Bundle Adjustment的原理

本文介绍了SLAM后端优化中的Bundle Adjustment(BA)技术。BA通过同时优化相机位姿和3D路标点位置,最小化重投影误差,解决前端估计的累积误差问题。文章详细讲解了BA的数学原理,包括目标函数构建、Gauss-Newton法和Levenberg-Marquardt法求解过程,以及利用稀疏性和Schur补加速计算的关键技术。对比了全量BA和增量BA的优缺点,并介绍了Ceres、g2o等工程实现工具。BA作为SLAM后端的核心算法,其理解深度直接影响系统性能优化能力。

郑伟强dev的专栏 347

把 KV Cache 压到 FP4:BitDecoding-FP4 的算法-系统协同设计复盘

长上下文推理卡在KV Cache的显存与带宽上,而现有FP4方案要么精度崩、要么速度废。这篇文章复盘BitDecoding-FP4如何用三个算法补丁加一个系统重构,在B300上把服务吞吐提升2.4–3.0倍,精度几乎不掉。

helloagent的博客 191

基于 STM32 与压电薄膜的婴儿睡眠呼吸暂停监测床垫设计

本设计以 STM32F103C8T6 为主控,结合 PVDF 压电薄膜传感器,通过模拟信号调理与数字峰值检测算法,实现了对婴儿睡眠呼吸状态的实时监测。系统结构简单、成本低廉、无接触无束缚,当检测到 20 秒以上无呼吸信号时自动触发声光报警,可有效降低婴儿睡眠呼吸暂停带来的安全风险。后续可扩展蓝牙 / WiFi 模块,将报警信息推送至家长手机端,实现远程监护。

weixin_42300449的博客 151

Agentic RL: 大模型后训练 SFT、PPO和GRPO

本文介绍了从LLM训练到Agentic RL的发展过程。传统LLM训练包括预训练和后训练两个阶段,其中后训练通过监督微调、奖励建模和强化学习等技术优化模型表现。针对智能体在复杂任务中的不足,提出了Agentic RL新范式,将LLM嵌入强化学习框架,通过多步交互、工具使用和环境反馈来优化长期目标。相比传统单轮对话优化(PBRFT),Agentic RL具有状态包含历史上下文、行动类型多样、动态状态转移等特点,更适合解决需要多步推理和规划的任务。这种新方法为开发更强大的智能体系统提供了可能。

Cachel Wood的博客 698

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 594

14、Java 中 TAF 和 FCF 的使用及 Oracle 数据库升级与迁移指南

本文详细介绍了Java中实现高可用性的TAF(透明应用故障转移)和FCF(快速连接故障转移)技术,以及如何将Oracle 9iR2 RAC环境升级到10gR2 RAC,并将数据从OCFS迁移到ASM。通过示例代码和操作步骤,帮助开发者和数据库管理员更好地应对数据库故障和数据迁移问题,提升系统的可用性和性能。

egg99的博客 110

优选算法:分治-归并排序

交易逆序对的总数

Wangshijie1015的博客 122

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 22

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

408 算法 06|堆与 Top-K:最小的 10 个数,到底该用数组还是堆

2022(42) 找 100 万个数里最小的 10 个,官方给了"10 元素有序数组"和"大根堆"两种答案。我把两种都实现并数了比较次数:k=10 时两者几乎打平,k=10000 时堆少 111 倍。另附 2021(42) 计数排序的比较次数与稳定性实测。

m0_56226131的博客 353

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C语言程序设计题|有序数组插入数字冒泡排序

题目要求将一个数插入有序数组末尾,并用冒泡排序实现整体升序。代码先将输入数存入数组最后位置,再通过双重循环进行冒泡排序,每轮将较大元素向后移动,最终输出11个升序元素。该方法虽时间复杂度为O(n²),但符合题目要求,逻辑清晰,适合初学者理解排序原理。

2301_81429079的博客 750

408 算法 04|主元素与三元组最小距离:两种“扫描时做决定“的思路

2013(41) 的主元素用摩尔投票一遍选出候选,但真正的考点是"选完必须验票";2020(41) 的三元组最小距离,三指针每次只挪最小的那个,靠的是 D=2×(max−min) 这个恒等式。两套完整 C 代码加真实输出,附官方评分档位表。

m0_56226131的博客 414

牛客周赛165C题(前后缀性质,递推,排序,枚举)

题目大意:给定长度为 `n` 的数组,选择 `k ∈ [1,n]`,将前 `k` 个元素整体翻转,后面的元素不变。要求操作后的整个数组非递减,统计满足条件的 `k` 的数量。题目链接:https://ac.nowcoder.com/acm/contest/141721/C。时间复杂度:O(nlogn)

2501_94316951的博客 172

【数据结构-3】算法美学之降复杂度

在while循环的循环体内,首先用临时变量保存最后一个位置的数据,再通过for循环把所有元素往后移动一位,最后把tmp中保存的值放到下标为0的位置上去。方法二的思路是:创建新数组,让原数组中后k个数据移动到新数组中前面的位置,让原数组中前numsSize-k个数据移动到新数组中后面的位置,这。这段代码的思路是:三次逆置,第一次逆置前numsSize-k个数据,第二次逆置后k个数据,最后整体逆置。这篇博文分享一道解法不一的算法题,求解过程的目的在于降低算法的时间复杂度,题源力扣。,属于空间换时间的操作。

weixin_44218929的博客 89

算法61,判定是否为字符重排

两字符串能互为重排 ⇔。

sheshibenniaodan的博客 219

算法日常・每日刷题--<动态规划>32

给定严格递增的正整数数组,求最长斐波那契子序列长度。使用二维DP,dp[i][j]表示以arr[i]、arr[j]为最后两项的序列长度,初始化均为2。通过哈希表快速查找前一项target = arr[j] - arr[i],若存在且下标小于i,则状态转移:dp[i][j] = dp[k][i] + 1。遍历更新全局最大长度,最终若结果小于3则返回0。时间复杂度O(n²),空间复杂度O(n²)。

2503_92261635的博客 178

【前缀和+复合离散化】题解:双色矩形(two)_数据结构_算法优化_预处理_二维前缀和_STL_C++算法竞赛

给定一个 $n \times n$ 的黑白棋盘,初始按 $i+j$ 奇偶染色,经 $k$ 个格子颜色翻转后,求子矩形中黑白格子数差的绝对值最大值。由于 $n$ 可达 $10^9$,但 $k \leq 50$,可离散化关键点。枚举所有由修改点构成的矩形及其四边向外扩展(共 $16$ 种扩展方式),利用二维前缀和快速计算变化量,结合奇偶性判断多出的格子颜色,最终取最大绝对差。时间复杂度为 $O(k^4)$,在 $k \leq 50$ 下可行。

YLCHUP的博客 73

算法札记:几何分布在算法题UVA1262的运用

集卡问题求解核心:将集齐n种优惠券的过程分为n个阶段,每个阶段期望购买次数为 $ \frac{n}{k} $(k为剩余种类数),总期望为 $ n \cdot H_n $(调和数)。通过自洽方程推导单阶段期望,无需几何分布或无穷级数,逻辑清晰且适用于大一水平。例如,n=5时期望约11.42,非5。题目要求以带分数形式输出精确结果,算法上需累加分数并化简。

Keven_11的博客 361

考拉兹猜想 - 7

本文通过引入虚数单位重构Collatz猜想的迭代逻辑,指出偶数减半与奇数“乘3加1”的过程在虚数坐标下等价于归结操作。关键在于:乘3加1使奇数跃升至偶数,随后持续减半,而虚数单位代表“无限减1”,实现无限向有限的转化。无论初始值如何,减半始终主导,最终归结为4-2-1循环。该视角消解了正向思维中的速度竞争疑虑,证明归结是必然结果。

杨铸人的博客 45

SSL证书选RSA还是ECDSA:公钥算法、CA签名与兼容性怎么核对

申请SSL证书时,RSA和ECDSA该怎么选?先分清站点公钥算法、CA签名算法和TLS实际兼容性,再用隔离OpenSSL实验读取两类材料,核对申请、续期和部署交接,避免只看Signature Algorithm就选错。

谁呀!的博客 401
上一篇: NOIp2001 数的计算
下一篇: 洛谷P2393 kkksc03临时抱佛脚
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值