前缀和之二维前缀和

前面讲了一维前缀和,下面我就来讲一讲二位前缀和

1.简介

二位前缀和用于求二维数组中一个二维区间的算法,同样也是离线算法。一共分为一个步骤:二维前缀和

2.代码

1.二维前缀和

int a[1005][1005], sum[1005][1005];

//main
int n, m, q;

cin >> n >> m >> q;

for (int i = 1; i <= n; i++){
	for (int j = 1; j <= m; j++){
    	cin >> a[i][j];
        sum[i][j] = sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+a[i][j];//重点:累加公式
    }
}

for (int i = 1; i <= k; i++){
	int x, y, z, l;
    
    cin >> x >> y >> z >> l;
    
    cout << sum[z][l] - sum[x-1][l] - sum[z][y-1] - sum[x-1][j-1];//重点:求区间和
    cout << (z-x+1)*(l-y+1) << endl;//重点:求矩阵大小
}

这就是二维前缀和的全部了,点个赞呗。欢迎在评论区留言!

c++算法大全 文章被收录于专栏

本专栏收集了c++大部分基础算法,附有简介和代码。

全部评论
还有其他方法吗?
3 回复 分享
发布于 08-27 16:32 北京

相关推荐

🐭🐭不想面试啦�...:哈哈哈哈,是hc稀缺是吧。一边稀缺,一边后端简历多到捞不出来
点赞 评论 收藏
分享
评论
3
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务