当前位置: 首页 > news >正文

前缀和 --- 二维前缀和

题目链接(牛客网)

给你一个 n 行 m 列的矩阵 A ,下标从1开始。

接下来有 q 次查询,每次查询输入 4 个参数 x1 , y1 , x2 , y2

请输出以 (x1, y1) 为左上角 , (x2,y2) 为右下角的子矩阵的和,
输入描述:
第一行包含三个整数n,m,q.

接下来n行,每行m个整数,代表矩阵的元素

接下来q行,每行4个整数x1, y1, x2, y2,分别代表这次查询的参数
在这里插入图片描述

问题分析

如果我们能处理出来从 [0, 0] 位置到 [i, j] 位置这⽚区域内所有元素的累加和,就可以在 O(1) 的时间内,搞定矩阵内任意区域内所有元素的累加和。因此我们接下来仅需完成两步即可:
第⼀步:前缀和矩阵

在矩阵的最上⾯和最左边添加上⼀⾏和⼀列0,这样我们就可以省去⾮常多的边界条件的处理在这里插入图片描述
递推⽅程:
其实这个递推⽅程⾮常像我们⼩学做过求图形⾯积的题,我们可以将 [0, 0] 位置到 [i, j] 位置这段区域分解成下⾯的部分:在这里插入图片描述
递推⽅程是:sum[i][j]=sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1]+matrix[i - 1][j - 1]

第⼆步:使⽤前缀和矩阵
sum[row2][col2]-sum[row2][col1 - 1]-sum[row1 - 1][col2]+sum[row1 - 1][col1 - 1]

代码解决

public static void main2(String[] args) {Scanner in = new Scanner(System.in);//读入数据int n = in.nextInt(),m = in.nextInt(),q = in.nextInt();int[][] arr = new int[n+1][m+1];for (int i = 1;i<=n;i++){for (int j = 1; j <=m; j++) {arr[i][j] = in.nextInt();}}//预处理一个前缀和数组long[][] dp = new long[n+1][m+1];for (int i = 1; i <=n ; i++) {for (int j = 1; j <=m ; j++) {dp[i][j] = dp[i-1][j] + dp[i][j-1] +arr[i][j] - dp[i-1][j-1];}}//使用前缀和数组while (q>0){int x1 = in.nextInt(),y1 = in.nextInt(),x2 = in.nextInt(),y2 = in.nextInt();System.out.println(dp[x2][y2] - dp[x1-1][y2] - dp[x2][y1-1] + dp[x1-1][y1-1]);q--;}}

相关文章:

  • SVN子路径权限设置及登录方法详解
  • Prometheus使用Recoding Rules优化性能
  • 20250429-李彦宏口中的MCP:AI时代的“万能接口“
  • 微服务学习笔记
  • AWS MSK 集群升级前配置检查:保障升级平稳进行的关键步骤
  • 基于PyTorch的图像分类特征提取与模型训练文档
  • MapReduce的shuffle过程详解
  • 【C++初阶】--- 模板进阶
  • 将infinigen功能集成到UE5--在ue里面写插件(python和c++)
  • 在Mybatis中写sql的常量应用
  • Redis Sentinel 和 Redis Cluster 各自的原理、优缺点及适用场景是什么?
  • 同一个路由器接口eth0和ppp0什么不同?
  • springboot中有关数据库信息转换的处理
  • Opencv中图像深度(Depth)和通道数(Channels)区别
  • MySQL事务隔离级别的实现原理MVCC
  • 51c自动驾驶~合集37
  • 「国产嵌入式仿真平台:高精度虚实融合如何终结Proteus时代?」——从教学实验到低空经济,揭秘新一代AI赋能的产业级教学工具
  • 夜族觉醒 服务搭建 异地联机 保姆教程 流畅不卡顿
  • 【linux网络】网络基础概念
  • 流量守门员:接口限流艺术
  • 万科:一季度营收近380亿元,销售回款率超100%
  • 人社部:将制定提前领取个人养老金相关办法
  • 首映|“凤凰传奇”曾毅:拍电影,我是认真的
  • 龚正会见委内瑞拉副总统罗德里格斯
  • 人民日报社论:做新时代挺膺担当的奋斗者
  • 商超展销延长、专区专柜亮相……上海“外贸拓内销”商品与市民见面