题解 | #【模板】差分#
【模板】差分
https://www.nowcoder.com/practice/4bbc401a5df140309edd6f14debdba42
#include <iostream>
using namespace std;
const int N =1e5+10;
long long d[N]={0};
int main() {
int n,m;
cin>>n>>m;
int l,r,k;
int a[n];
for(int i=1;i<=n;i++)
{
cin>>a[i];//输入n个整数
}
for(int i=1;i<=m;i++)
{
cin>>l>>r>>k;//操作的区间
d[l]+=k;//差分的性质
d[r+1]-=k;
}
for(int i=1;i<=n;i++)
{
d[i]+=d[i-1];//前缀差之和
}
for(int i=1;i<=n;i++)
{
cout<<a[i]+d[i]<<" ";
}
return 0;
}
// 64 位输出请用 printf("%lld")
#菜狗的解题#
查看6道真题和解析