每日打卡day8——差分练习

news/2025/1/15 11:19:46/

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

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

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

输入格式

第一行包含两个整数 n 和 m。

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

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

输出格式

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

数据范围

1≤n,m≤100000,
1≤l≤r≤n,
−1000≤c≤1000,
−1000≤整数序列中元素的值≤1000

输入样例:

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

输出样例:

3 4 5 3 4 2

思路:差分模板套用,对[ L, R] 区间进行增加或减小,都可以转 该数组的差分数组(即前缀和为该位置原本值)的第 L 位置增加或减少 C, 再对 R 位置减少或增加 C, 最后,对该差分数组进行前缀和,即得到修改后的数组值

代码如下:

#include <iostream>
#include <vector>
using namespace std;const int N = 1e5 + 10;int n, m;
vector<int> nums(N, 0);
vector<int> res(N, 0);void insert(int l, int r, int c){res[l] += c;res[r + 1] -= c;
}int main(){cin >> n >> m;for(int i = 1; i <= n; i++){cin >> nums[i];}//求差分数组for(int i = 1; i <= n; i++){insert(i, i, nums[i]);}while(m--){int l = 0, r = 0, c = 0;cin >> l >> r >> c;insert(l, r, c);}for(int i = 1; i <= n; i++){res[i] += res[i - 1];cout << res[i] << " ";}return 0;
}

 


http://www.ppmy.cn/news/943149.html

相关文章

acer台式计算机如何拆硬盘,原件 Acer V5471G拆卸与更换固态硬盘的详细说明

这次&#xff0c;我用固态驱动器替换了V5-471G笔记本电脑. 尽管有很多关于这种拆卸的图片v5471g键盘外框怎么拆&#xff0c;但这并不是什么新鲜事. 但是&#xff0c;我们对每个需要注意的地方做了一些解释&#xff0c;希望能帮助需要自行拆卸和重新安装的朋友 首先&#xff0c;…

关于笔记本电脑散热不佳且噪音很大的维修记录随想

小生一本子&#xff0c;09年2月份购买的&#xff0c;三星R458机型&#xff0c;前年手贱自己看网上的图解&#xff0c;自己拆过一次&#xff0c;没拆好&#xff0c;把屏幕与机身交接处的机架拆坏了。当时一直以为官方维修点维修放心&#xff0c;最后的结果是等了三天时间&#x…

解放研究者:GPT自动化科研

GPT Researcher 是一个自主代理程序&#xff0c;旨在进行多种任务的全面在线研究。 该代理能够生成详细、事实性和公正的研究报告&#xff0c;并提供个性化选项&#xff0c;以便关注相关资源、大纲和教训。受到AutoGPT和最近的Plan-and-Solve论文的启发&#xff0c;GPT Researc…

.net 浅复制

你可以使用C#编程语言来编写一个通用的扩展方法&#xff0c;用于将一个对象的值复制到另一个对象&#xff0c;并且修改目标对象的属性时原始对象不受影响。 以下是一个示例代码&#xff1a; public static T ShallowCopy<T>(this T original) where T : class{if (origi…

在LLM的支持下使游戏NPC具有记忆化的方法

问题 使用GPT这样的LLM去处理游戏中的NPC和玩家的对话是个很好的点子&#xff0c;那么如何处理记忆化的问题呢。 因为LLM的输入tokens是有限制的&#xff0c;所以伴随着问题的记忆context是有窗口大小限制的&#xff0c;将所有的记忆输入LLM并不现实。 所以这里看到了stanfo…

【Python】简单计算器实现(四)

解决思路&#xff1a;最后&#xff0c;我们来看看最简单的运算函数和判断运算符函数。 定义函数&#xff1a;def calculate(n1, n2, operator) param n1: floatparam n2: floatparam operator: - * /return: float def calculate(n1, n2, operator):result 0if operator …

win7,win10下删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\报错

在调试虚拟网卡驱动时&#xff0c;由于修改错误&#xff0c;导致枚举顺序错乱&#xff0c;因此通过删除HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\WINTUN下的所有项&#xff0c;即可&#xff0c;win10可用。 1、下载PStools&#xff1a; http://technet.microsoft.c…

【懒人版】labview 软件加密+试用期限制+绑定硬件

labview编译的软件如何在无加密狗的情况下绑定系统硬件生成机器码和注册码&#xff0c;增加试用期功能。获取硬件序列号&#xff0c;对序列号加密&#xff0c;通用密钥生成机器码&#xff0c;在客户端生成机器码&#xff0c;在服务器端生成注册码。 该例程实现如下功能&#xf…