# 二维差分

时间:2020-01-21 22:43:07   收藏:0   阅读:90

二维差分

整理一下差分的板子。

//二维差分
//对(x1,y1),(x2,y2)包围的矩阵中所有元素加上x
inline void add(int x1,int y1,int x2,int y2,int x){
    d[x1][y1]+=x;
    d[x1][y2+1]-=x;
    d[x2+1][y1]-=x;
    d[x2+1][y2+1]+=x;
}

//读入矩阵中的元素时,通过add操作加入到差分数组中
rep(i,1,n)rep(j,1,m){
    sf(x);
    add(i,j,i,j,x);
}

//二维前缀和
d[i][j]+=d[i-1][j]+d[i][j-1]-d[i-1][j-1];

原文:https://www.cnblogs.com/sstealer/p/12227175.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!