一维差分
//直接初始化
int a[2000000]={0};int xa[2000000]={0};
for(int i = 1;i<=n;i++){
scanf("%d",&a[i]);xa[i]=a[i]-a[i-1];
//insert初始化
void in(int l,int r,int c)
{
a[l]+=c;
a[r]-=c;
//实际上r是R+1;
}//输出
xa[i]+=xa[i-1];
二维差分
//初始化
void insert(int x1,int y1,int x2,int y2,int c)
{
a[x1][y1]+=c;
a[x2+1][y2+1]+=c;
a[x2+1][y1]-=c;
a[x1][y2+1]-=c;
}
//用二维前缀和输出
a[i][j]+=a[i-1][j]+a[i][j-1]-a[i-1][j-1]);