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

题解:AcWing 797 差分

【题目来源】

AcWing:797. 差分 - AcWing题库

【题目描述】

输入一个长度为 \(n\) 的整数序列。

接下来输入 \(m\) 个操作,每个操作包含三个整数 \(l,r,c\),表示将序列中 \([l,r]\) 之间的每个数加上 \(c\)

请你输出进行完所有操作后的序列。

【输入】

第一行包含两个整数 \(n\)\(m\)

第二行包含 \(n\) 个整数,表示整数序列。

接下来 \(m\) 行,每行包含三个整数 \(l,r,c\),表示一个操作。

【输出】

共一行,包含 \(n\) 个整数,表示最终序列。

【输入样例】

6 3
1 2 2 1 2 1
1 3 1
3 5 1
1 6 1

【输出样例】

3 4 5 3 4 2

【解题思路】

317da77c79db2f0a15b8aa7f708a3b0d

【算法标签】

《AcWing 797 差分》 #差分#

【代码详解】

#include <bits/stdc++.h>
using namespace std;const int N = 100010;  // 定义数组最大长度int n, m;             // n: 数组长度, m: 操作次数
int a[N];             // 原始数组
int b[N];             // 差分数组/*** 差分数组区间更新操作* @param l 区间左端点* @param r 区间右端点* @param c 要增加的值*/
void insert(int l, int r, int c)
{b[l] += c;       // 左端点加cb[r + 1] -= c;   // 右端点+1位置减c
}int main()
{// 输入数组长度和操作次数scanf("%d%d", &n, &m);// 输入原始数组for (int i = 1; i <= n; i++){scanf("%d", &a[i]);}// 初始化差分数组(两种方式等价)// 方式1: 直接计算差分 b[i] = a[i] - a[i-1]// 方式2: 通过insert函数逐个元素插入for (int i = 1; i <= n; i++){insert(i, i, a[i]);}// 处理每个区间更新操作while (m--){int l, r, c;scanf("%d%d%d", &l, &r, &c);insert(l, r, c);  // 执行区间更新}// 计算前缀和,得到更新后的数组for (int i = 1; i <= n; i++){b[i] += b[i - 1];}// 输出最终数组for (int i = 1; i <= n; i++){printf("%d ", b[i]);}return 0;
}

【运行结果】

6 3
1 2 2 1 2 1
1 3 1
3 5 1
1 6 1
3 4 5 3 4 2
http://www.jsqmd.com/news/397366/

相关文章:

  • MyBatis-Plus12:JSON处理器
  • 题解:AcWing 796 子矩阵的和
  • MyBatis-Plus13:自定义 TypeHandler
  • 2026年论文降AI率工具选型指南:多模型对比改写的核心逻辑与高效解决方案 - 小白条111
  • 深度学习算法之深度学习框架(PyTorch)的使用场景和使用方法及算法,优化方法,缺点_blog
  • [豪の算法奇妙冒险] 代码随想录算法训练营第四十三天 | 300-最长递增子序列、674-最长连续递增序列、718-最长重复子数组
  • 移动开发如何巧用 RxJava 优化代码
  • 深度强化学习TD方法:核心算法、实战场景与优化全解析
  • 深度学习框架MXNet深度解析:从核心算法到工业部署实战
  • 彻底禁止win11系统更新的方法,关闭win11自动更新的教程
  • 一键彻底禁止Win11自动更新6大方法,Win11系统的自动更新怎么彻底关闭?
  • 2026年论文赶due神器深度测评:一站式搞定全流程的多模型AI工作台选型指南 - 小白条111
  • 图像分类实战
  • 支持多语种的9个AI降重平台,提供改写、扩写、缩写全功能,满足不同场景文本优化需求
  • 并查集 - [JSOI2008] 星球大战
  • 2026年论文降AI味工具选型指南:多模型协同如何解决单一AI的“模板化陷阱” - 小白条111
  • 模拟与存根实战:unittest.mock深度使用指南
  • HarmonyOS 6.0分布式应用开发全解析:从架构革新到跨设备协同实战
  • 如何在豆包平台打广告,找哪个服务商? - 品牌2025
  • 手把手还你一个清爽的windows!---激活和清爽配置教程
  • 白血病细胞与正常细胞识别数据集:医学影像与智能诊断的细胞分析数据
  • 抢占AI流量新风口:doubaoAD如何助力企业实现豆包平台高效获客 - 品牌2025
  • 2026年论文急救AI工具选型指南:多模型协同如何解决due前3天的核心痛点 - 小白条111
  • 推荐9款高效AI降重工具,改写效果显著提升文本原创性,适用于论文及各类文稿的重复率优化需求
  • 9个超好用的AI降重网站,一键改写文章,效果惊艳。轻松解决重复率问题,写作必备工具清单
  • 这些AI降重网站绝了!9款工具改写效果拔群,三秒降低重复率,学术写作党赶紧收藏备用
  • 题解:AcWing 795 前缀和
  • 端侧AI爆发!AMD新芯片本地跑大模型,开发教程来了
  • 堆的基本存储
  • flask基于Spark的温布尔登特色赛赛事数据分析预测及算法实现