# 二维差分

≡放荡痞女 提交于 2020-01-21 23:39:04

二维差分

整理一下差分的板子。

//二维差分
//对(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];
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!