蓝桥杯省赛无忧 第二章 基础算法 课件27 差分

发布时间:2024年01月19日

在这里插入图片描述

01 差分的原理和特点

在这里插入图片描述
在这里插入图片描述

02 差分的实现

在这里插入图片描述

03 例题讲解

在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;
const int N  = 1e5 +7;
int arr[N],diff[N];
void solve(int n,int m){
  for(int i=1;i<=n;i++) cin >> arr[i];
  for(int i=1;i<=n;i++) diff[i] = arr[i] - arr[i-1];
  while(m--){
    int x,y,z;cin >> x >> y >> z;
    diff[x] += z,diff[y+1] -= z;
  }
  for(int i=1;i<=n;i++) arr[i] = arr[i-1] + diff[i];
  for(int i=1;i<=n;i++) cout << arr[i] << ' ';
  cout << endl;
}
int main()
{
 int n,m;
 while(cin >> n >> m) solve(n,m);
  return 0;
}

在这里插入图片描述
在这里插入图片描述

文章来源:https://blog.csdn.net/weixin_74774974/article/details/135705717
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。