做简历哪个网站比较好制作图片的软件哪个好
news/
2025/10/4 10:43:25/
文章来源:
做简历哪个网站比较好,制作图片的软件哪个好,wordpress 网站制作,发任务做任务得网站文章目录 797. 差分题目描述差分 797. 差分
题目描述
输入一个长度为 n nn 的整数序列。
接下来输入 m mm 个操作#xff0c;每个操作包含三个整数 l,r,c, 表示将序列中 [l,r] 之间的每个数加上 c 。
请你输出进行完所有操作后的序列。
输入格式 第一行包含两个整数 n 和… 文章目录 797. 差分题目描述差分 797. 差分
题目描述
输入一个长度为 n nn 的整数序列。
接下来输入 m mm 个操作每个操作包含三个整数 l,r,c, 表示将序列中 [l,r] 之间的每个数加上 c 。
请你输出进行完所有操作后的序列。
输入格式 第一行包含两个整数 n 和 m 。
第二行包含 n 个整数表示整数序列。
接下来 m 行每行包含三个整数 lrc表示一个操作。
输出格式 共一行包含 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差分
#includebits/stdc.h // 包含大部分标准库
using namespace std;const int z 100010; // 设置数组的最大长度因为数据范围是1≤n,m≤100000
int a[z], b[z]; // a是原始的序列b是差分数组int main()
{int n, m; // n是序列的长度m是操作的次数scanf(%d %d, n, m); // 读入n, mfor(int i 1; i n; i){scanf(%d, a[i]); // 读入序列b[i] a[i] - a[i - 1]; // 计算差分数组差分数组的前缀和是原序列}while(m--){int l, r, c; // 操作的区间和要加上的值scanf(%d %d %d, l, r, c); // 读入操作//因为在差分数组中标记位加了一个数还原成原数组的时候后面的数都会累加然后再r1位 再减去这个数停止累加 b[l] c; // 在左端点加上cb[r 1] - c; // 在右端点的下一个位置减去c}for(int i 1; i n; i){a[i] a[i - 1] b[i]; // 求差分数组的前缀和即还原原始序列printf(%d , a[i]); // 输出最终序列}return 0;
}这段代码的核心思想是差分数组。差分数组是一种特殊的数组它记录了原始序列每个数与前一个数之差的变化。通过对差分数组进行一系列操作可以快速更新原始序列中的数。
在代码中首先读入原始序列并计算出差分数组。差分数组的计算是通过当前元素等于原始序列中当前元素减去前一个元素得到的。
接下来根据输入的操作对差分数组进行更新。每个操作表示一个区间 [l, r]将区间内的每个数都加上给定的值c。这是通过将区间的左端点加上c右端点的下一个位置减去c来实现的。
最后通过差分数组和原始序列的关系计算出最终的序列并输出每个数。最终序列的计算是通过原始序列中每个数等于前一个数加上差分数组中对应位置的数得到的。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927034.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!