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

“二维前缀和”算法原理及模板

在学习本篇内容前建议先学习一下“一维前缀和”

一维前缀和 算法https://blog.csdn.net/czt230610/article/details/148012923?fromshare=blogdetail&sharetype=blogdetail&sharerId=148012923&sharerefer=PC&sharesource=czt230610&sharefrom=from_link接下来我们就直接从题引入

如果一维的话,很容易想到创建“前缀和”数组进行相减,但到了二维,我们要在每一行、每一列都要创建一个“前缀和”数组吗?显然太麻烦了,我们用一下数学思维或许使这个问题更加简单化。所以本题的暴力解我们就不多说了。

根据我们的算法原理:创建前缀和数组并使用,我们要“更便利“地创建这个数组。

首先,这个数组的含义是不能变的,dp[i][j]记录的是从[1,1]到dp[i,j]的所有和(为什么下标从1开始在一维模板中有说明),现在我们求dp[i][j]

根据题意,就是把图中arr的ABCD中所有元素求和即可(D就是arr[i][j]),如果我们直接求A+B+C+D,发现还是很麻烦,我们可以采用,(A+C)+(A+B)+D-A的方式,换成代码就是dp[i][j-1]+dp[i-1][j]+arr[i][j]-dp[i-1][j-1],这就是前缀和数组的预处理。

接下来是使用

上图是arr数组,我们要求出[x1,y1]-[x2,y2]之间的和(图中的D),我们可以用A+B+C+D-(A+B)-(A+C)+A.即dp[x2,y2]-dp[x1-1,y2]-dp[x2,y1-1]+dp[x1-1,y1-1]。这里的坐标-1用一下3×3表格模拟即可得出原因。

现在我们可以写题解(模板)了

#include <iostream>using namespace std;
#include <vector>int main()
{//输入数据int n=0,m=0,q=0;cin>>n>>m>>q;vector<vector<int>> arr(n+1,vector<int>(m+1));for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>arr[i][j];
//预处理前缀和数组vector<vector<long long>> dp(n+1,vector<long long>(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]-dp[i-1][j-1]+arr[i][j];//使用int x1=0=,y1=0,x2=0,y2=0;while(q--){cin >>x1>>y1>>x2>>y2;cout<<dp[x2][y2]-dp[x2,y1-1]-dp[x1-1,y2]+dp[x1-1,y1-1]<<endl;}return 0;
}

相关文章:

  • 亚马逊海卖助手有什么功能?海卖助手的主要功能与特点分析
  • mybatis中的resultMap的association及collectio的使用
  • Python训练营---Day29
  • 飞机飞行控制系统补偿模型辨识报告
  • 估分啦~全国青少年信息素养大赛部分赛项已考完~图形化/算法创意实践
  • 量子计算在金融科技中的应用前景
  • 系统思考:IT企业项目困境分析
  • ImgShrink:摄影暗房里的在线图片压缩工具开发记
  • 第5章 监控与回归测试:日志收集 · 代码覆盖率 · 静态分析 · 质量门
  • Vue 3 动态 ref 的使用方式(表格)
  • 字节跳动开源DeerFlow,解锁AI研究新姿势
  • 采用DHCP动态分配IP地址,如果某主机开机后没有得到DHCP服务器的响应。则该主机获取的IP地址为?
  • 组态王|如何创建组态王工程?
  • 零基础搭建!基于PP-ShiTuV2的轻量级图像识别系统(Docker+API部署指南)
  • printf在c语言中代表什么(非常详细)
  • 6.2.2邻接表法-图的存储
  • PWM讲解+STM32任意频率、占空比、脉宽生成函数介绍
  • boost之signal2
  • 代码上传gitte仓库
  • 本地无损放大软件-realesrgan-gui
  • 哪个网站可以做360度评估/百度网络营销中心官网
  • 网站改版怎么做301重定向/安卓优化大师破解版
  • 南京网站制作招聘/在线子域名二级域名查询工具
  • 游戏网站设计/业务网站制作
  • 政府门户网站建设经验总结/网站营销推广
  • wordpress 淘宝客赚钱/汕头seo优化公司