二位前缀和

存储

for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+g[i][j];
}
}

求 左上角是(x1,x2),右下角是(x2,y2)的方阵的和 eg:;(3,3),(3,3)不是0 ,是 g[3][3];

int mer(int x1,int y1,int x2,int y2)
{
return s[x2][y2]+s[x1-1][y1-1]-s[x1-1][y2]-s[x2][y1-1];
}

posted on 2025-04-11 15:00  下头小美  阅读(21)  评论(0)    收藏  举报