前缀和之二维前缀和

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

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 北京

相关推荐

08-27 16:27
门头沟学院 C++
###&nbsp;手撕区间合并&nbsp;5分钟秒了###&nbsp;八股从项目引申到mysql、redis八股,OS、计网一点没问1.&nbsp;redis为什么快,性能为什么高?2.&nbsp;redis里面基本的数据类型有哪些?3.&nbsp;一些数据类型也是redis优化之后导致redis快的原因,能够就其中一个redis数据结构的优化来举出一个实际的例子吗?4.&nbsp;你能先描述一下跳表的数据结构长什么样子?5.&nbsp;跳表空间复杂度是多少?6.&nbsp;说说对redis事务的理解?7.&nbsp;说说对mysql事务的理解?8.&nbsp;说一下redis的持久化方案把?9.&nbsp;redis主从同步主要采取哪种形式?10.&nbsp;redis有几种部署模式?11.&nbsp;你觉得集群模式和哨兵模式的主要区别是?12.&nbsp;集群模式中如何出现一个redis热点key的情况,怎么做防止节点单点压力过大?(我回答是业务层面解决,每个节点都缓存热点key,用一个哈希集合存储热点key,直接快速判断是否走本地查询,而不是哈希索引节点)13.&nbsp;说一下mysql的隔离级别以及每种隔离级别下可能出现的问题?14.&nbsp;说一下可重复读是怎么解决不可重复读的问题?15.&nbsp;说一下什么是聚簇索引?16.&nbsp;聚簇索引和聚簇索引有什么区别?17.&nbsp;数据结构的区别在哪里?都用的是B+数吗?18.&nbsp;B+数的结构原理是什么?19.&nbsp;什么是覆盖索引?20.&nbsp;覆盖索引有什么好处?21.&nbsp;最近的话,AI大模型比较火,你有没有学习AI大模型相关的原理,大模型微调了解过吗?###&nbsp;反问什么业务、有几面、什么时候出结果?拼好饭(商家、商品层);3面业务面;不知道
落北北:同学,瞅瞅我司,医疗独角兽,校招刚开,名额有限,先到先得,我的主页最新动态,绿灯直达,免笔试~
查看21道真题和解析
点赞 评论 收藏
分享
评论
3
3
分享

创作者周榜

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