前缀和与差分

前缀和与差分 二维前缀和#includebits/stdc.h using namespace std; int main(){ int n,m; cinnm; long long a[2005][2005],s[2005][2005]; for(int i1;in;i){ for(int j1;jm;j){ cina[i][j]; } } for(int i1;in;i){ for(int j1;jm;j){ s[i][j]s[i-1][j]s[i][j-1]-s[i-1][j-1]a[i][j]; } } for(int i1;in;i){ for(int j1;jm;j){ coutsetw(5)s[i][j]; } cout\n; } return 0; }二维差分#includebits/stdc.h using namespace std; int main(){ int n,m; cinnm; long long a[2005][2005],d[2005][2005]; for(int i1;in;i){ for(int j1;jm;j){ cina[i][j]; } } for(int i1;in;i){ for(int j1;jm;j){ d[i][j]a[i][j]-a[i-1][j]-a[i][j-1]a[i-1][j-1]; } } for(int i1;in;i){ for(int j1;jm;j){ coutsetw(5)d[i][j]; } cout\n; } return 0; }