二维差分
引入
差分都是基于前缀和的,一维差分的前缀和很简单,最需要处理区间两端。而二维的前缀和是sum[i][j]=a[i][j]+sum[i−1][j]+sum[i][j−1]−sum[i−1][j−1],我们在(x1,y1)处+a,影响了右边和下边的蓝色区域,需要−a,但两区域的重叠部分绿色被多减了一次,需要+a。
于是在(x1,y1)到(x2,y2)处+a,需要在sum[x1][y1]+=a,sum[x1][y2+1]−=a,sum[x2+1][y1]−=a,sum[x2+1][y2+1]+=a