题解 | #【模板】差分#
【模板】差分
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")#菜狗的解题#