学习,永无止境!|

韩熙隐ario

园龄:2年11个月粉丝:0关注:0

2024-05-31 23:35阅读: 11评论: 0推荐: 0

区间更新+差分

题目链接:区间更新
代码


#include<iostream>
using namespace std;

const int N = 1e5 + 5;

int a[N], b[N];

int main() {
	int n, m;
	while (cin >> n >> m) {
		for (int i = 1; i <= n; i++) {
			cin >> a[i];
			b[i] = a[i] - a[i -1];
//			cout << b[i] << " ";
		}
//		cout << endl;
		for (int i = 0; i < m; i++) {
			int x, y, z;
			cin >> x >> y >> z;
			b[x] += z;
			b[y + 1] -= z;
		}
//		for (int i = 1; i <= n; i++) {
//			cout << b[i] << " ";
//		}
//		cout << endl;
		for (int i = 1; i <= n; i++) {
			a[i] = a[i - 1] + b[i];
			cout << a[i] << ' ';
			//也可以换成b,可以看出此时用哪个数组已经不重要了 
//			b[i] = b[i - 1] + b[i];
//			cout << b[i] << ' ';
		}
		cout << endl;
	}
	return 0;
}

本文作者:韩熙隐ario

本文链接:https://www.cnblogs.com/arioya/p/18225449

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   韩熙隐ario  阅读(11)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起