WEEK 5 B TT's Magic Cat

2023-05-16

题目:

Thanks to everyone’s help last week, TT finally got a cute cat. But what TT didn’t expect is that this is a magic cat.
One day, the magic cat decided to investigate TT’s ability by giving a problem to him. That is select nn cities from the world map, and a[i]a[i] represents the asset value owned by the ii-th city.
Then the magic cat will perform several operations. Each turn is to choose the city in the interval [l,r]and increase their asset value by cc. And finally, it is required to give the asset value of each city after qq operations.
Could you help TT find the answer?

input:

The first line contains two integers n,q (1≤n,q≤2⋅105) — the number of cities and operations.
The second line contains elements of the sequence aa: integer numbers a1,a2,…,an(−106≤ai≤106)
Then qq lines follow, each line represents an operation. The ii-th line contains three integers l,r and c (1≤l≤r≤n,−105≤c≤105) for the ii-th operation.

output:

Print nn integers a1,a2,…,an one per line, and ai should be equal to the final asset value of the ii-th city.

example:

在这里插入图片描述

思路:

假设要处理的数组元素的长度为q,该题如果直接使用对原数组进行处理,则时间复杂度为O(q*n);如果将原数组转化为差分数组进行处理,则时间复杂度会降为O(q+n);且如果将原数组转化为差分数组进行处理,将从原来的区间修改转变为点的修改,即A[L,R]会变为B[X]+=C,B[Y+1]-=C,差分数组B的前缀和就是A修改后的最终值。综上,在这选用差分数组进行操作。

注意:

此题要用long long类型进行处理,而不是int类。

代码:

#include <iostream>

using namespace std;

const int N = 1e7;
long long n, k, x, y, c;
long long a[N], b[N], temp[N];

void change()
{
	b[1] = a[1];
	for (long long i = 2; i <= n; i++)
	{
		b[i] = a[i] - a[i - 1];
	}
}

int main()
{
	while (scanf_s("%lld %lld",&n,&k)!=EOF)
	{
		for (long long i = 1; i <= n; i++)
			scanf_s("%lld", &a[i]);
		change();
		for (long long i = 0; i < k; i++)
		{
			scanf_s("%lld %lld %lld", &x, &y, &c);
			b[x] += c;
			b[y + 1] -= c;
		}
		temp[1] = b[1];
		cout << temp[1];
		for (long long i = 2; i <= n; i++)
		{
			temp[i] = temp[i - 1] + b[i];
			cout << ' ' << temp[i];
		}
		cout << endl;
	}
    return 0; 
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WEEK 5 B TT's Magic Cat 的相关文章

  • week5 作业B TT's Magic Cat

    TT s Magic Cat Thanks to everyone s help last week TT finally got a cute cat But what TT didn t expect is that this is a
  • 使用cat和echo把多行内容写入到文件

    cat gt love txt gt i love you gt i love you so much gt i love you with all my heart gt EOF 注 xff1a 加EOF是为了退出编辑状态 参考这里 ca
  • 【Week 15 作业B】ZJM与生日礼物

    题目描述 ZJM 收到了 Q老师 送来的生日礼物 xff0c 但是被 Q老师 加密了 只有 ZJM 能够回答对 Q老师 的问题 xff0c Q老师 才会把密码告诉 ZJM Q老师 给了 ZJM 一些仅有 01 组成的二进制编码串 他问 ZJ
  • 【Week 15 作业C】ZJM与纸条

    题目描述 ZJM 的女朋友是一个书法家 xff0c 喜欢写一些好看的英文书法 有一天 ZJM 拿到了她写的纸条 xff0c 纸条上的字暗示了 ZJM 的女朋友 想给 ZJM 送生日礼物 ZJM 想知道自己收到的礼物是不是就是她送的 xff0
  • TT's Magic Cat -- 差分

    题意 TT 有一只猫 xff0c 它从 世界地图 选了 n 个城市 xff0c 用 ai 表示每个城市的资产 猫会给出几个操作 xff0c 区间 l r 的城市资产都加 c 在q次操作后 xff0c 输出所有城市的资产 Input 第一行有
  • HDU 3700 Cat

    Cat Time Limit 2000 1000 MS Java Others Memory Limit 32768 32768 K Java Others Total Submission s 451 Accepted Submissio
  • Linux之文本处理---cat、sort、uniq、cut、paste、join、comm、diff、patch、tr、sed、aspell

    由于所有类UNIX操作系统都严重依赖于文本文件来进行某些数据类型的存储 所以需要很多可以进行文本操作的工具 常见的文本格式有 文件 xff1a 使用纯文本格式编辑的文件 在使用文本格式编辑较大文件时 xff0c 常用的方法是 xff0c 首
  • Cat-Tree-Select 基于Vue+Element的树选择器

    Cat Tree Select 基于Vue 43 Element的树选择器 基于 Element 的Vue 组件 Vue js 2 x cat tree select Github 地址 前言 本人在最近的开发工作中常需要用到树选择器 目前
  • MATLAB: cat函数使用

    参考链接 http www ilovematlab cn thread 53313 1 1 html cat 用来联结数组 用法 C cat dim A B 按dim来联结A和B两个数组 C cat dim A1 A2 A3 按dim联结所
  • cat命令详解

    命令语法 Usage cat OPTION FILE 使用 cat 选项 文件名 OPTION 可选项 A show all equivalent to vET 相当于 vET 三个选项 b number nonblank number n
  • find 命令查找文件并将它们连接起来

    我正在尝试查找所有类型的文件 gz and cat他们到total gz我想我已经很接近这一点了 这是我用来列出所有的命令 gzfiles find home downloaded maxdepth 3 type d name exec b
  • Microsoft 安全目录格式文档和 API 示例

    我正在寻找有关使用 Microsoft 安全目录的 API 的任何文档 或者作为替代 有关文件格式的信息 以便我可以编写自己的解析器 简而言之 我有一些需要使用的 cat 文件 在十六进制编辑器中查看文件 它们显然有不同的区域 这些区域以某
  • 我可以使用 unix utils 以编程方式将 ANSI 控制代码“烧入”文件吗?

    示例 我开始录音script 并尝试输入echo test但省略了 o 所以我退格来纠正它 When I cat typescript一切看起来都很正常 因为代码被解释了 但如果我使用less or vim I see ech test H
  • 如何合并两个fasta文件并删除重复信息?

    我想合并两个 fasta 文件并删除重复信息 这是一些例子 gt Symbiotaphrina buchneri DQ248313 SH1641879 08FU reps k Fungi p Ascomycota c Xylonomycet
  • 将列表(如 R 控制台输出中所示)写入文本文件

    我在 r 中将列表写入文本文件时遇到问题 这是我的代码 library e1071 mydata read table TRAIN txt sep header FALSE model lt naiveBayes as factor V1
  • 在 Linux 上快速连接多个文件

    我正在使用 Python 多重处理为每个进程生成一个临时输出文件 它们的大小可能有几 GB 我制作了几十个 这些临时文件需要连接起来才能形成所需的输出 而这一步被证明是瓶颈 也是并行杀手 是否有一个 Linux 工具可以通过修改文件系统元数
  • java执行linux命令

    我试图从 java 代码执行 linux 命令 cat 但它不起作用 Runtime getRuntime exec cat home roman logs 它对于单文件的猫效果很好 Runtime getRuntime exec cat
  • 使用 catimg 并排显示两个内容(就像在 neofetch 中一样)

    我正在尝试使用 bash 创建类似 neofetch 的东西 我想在右侧显示一张图像和一张 ASCII 艺术图 使用 cat 当我对某些机器进行 ssh 时 我想将其用作登录欢迎屏幕 所以我能够通过以下方式展示 ascii 艺术 cat l
  • 在 R 中结合 head 和 tail 方法

    我经常使用 R 包 utils 中的 head d 和 tail d 方法 经常一个接一个 所以我为这两个函数编写了一个简单的包装器 ht lt function d m 5 n m print the head and tail toge
  • 目录 * 和文件顺序

    我需要将目录中的所有文件连接到一个文件 但具有指定名称的文件必须位于输出的顶部 只是在做cat gt result将按字母顺序连接所有文件 有什么办法告诉猫放置文件vars css或任何其他输出的开头 现在我只是重命名文件需要首先000 f

随机推荐