模板

S[i, j] = 第i行j列格子左上部分所有元素的和
以(x1, y1)为左上角,(x2, y2)为右下角的子矩阵的和为:
S[x2, y2] - S[x1 - 1, y2] - S[x2, y1 - 1] + S[x1 - 1, y1 - 1]

模板题

传送门:796. 子矩阵的和

输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数x1, y1, x2, y2,表示一个子矩阵的左上角坐标和右下角坐标。

对于每个询问输出子矩阵中所有数的和。

输入格式

第一行包含三个整数n,m,q。

接下来n行,每行包含m个整数,表示整数矩阵。

接下来q行,每行包含四个整数x1, y1, x2, y2,表示一组询问。

输出格式

共q行,每行输出一个询问的结果。

数据范围

1≤n,m≤1000,
1≤q≤200000,
1≤x1≤x2≤n,
1≤y1≤y2≤m,
−1000≤矩阵内元素的值≤1000

输入样例:

3 4 3
1 7 2 4
3 6 2 8
2 1 2 3
1 1 2 2
2 1 3 4
1 3 3 4

输出样例:

17
27
21

AC的C++程序如下:

#include<iostream>
using namespace std;const int N=1000;
int a[N][N],s[N][N]={0};//S[i, j] = 第i行j列格子左上部分所有元素的和int 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];s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];}for(int i=1;i<=q;i++)  {int x1,x2,y1,y2;cin>>x1>>y1>>x2>>y2;printf("%d\n",s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1]);}return 0;
}

重点:第15、21行

二维前缀和(附模板题)相关推荐

  1. ~~二维差分(附模板题)

    模板 给以(x1, y1)为左上角,(x2, y2)为右下角的子矩阵中的所有元素加上c: S[x1, y1] += c, S[x2 + 1, y1] -= c, S[x1, y2 + 1] -= c, ...

  2. 《算法竞赛进阶指南》打卡-基本算法-AcWing 99. 激光炸弹:二维前缀和

    文章目录 题目解答 题目来源 题目解答 来源:acwing 分析: 前缀和习惯从下标1开始. 注意:本题是不包含边界的.什么意思? 以样例为例,这里有两个点,分别在(0,0) 和(1,1),且攻击的矩 ...

  3. 基础算法:二维前缀和

    二维前缀和C++模板: S[i, j] = 第i行j列格子左上部分所有元素的和 S[i, j] = S[i-1,j] + s[i,j-1] - S[i-1,j-1] + a[i,j](表示当前的数) ...

  4. 牛妹吃豆子(二维前缀和模板,修改+求和)

    调了半天忘了要求两次前缀和了. 先对前缀和数组进行修改, 第一次求前缀和得到的是修改后的原矩阵,再求一次前缀和得到二维前缀和,然后根据容斥定理求区间的二维前缀和即可 #include<iostr ...

  5. 【题集】一维前缀和-二维前缀和-数星星问题-反复运行时如何降低时间复杂度

    目录 1前缀和 1.1一维前缀和 1.2二维前缀和 2.题目 2.1输入描述: 2.2输出描述: 2.3输入 2.4输出 3.题目理解 3.1思路 4.程序 4.1运行结果 1前缀和 1.1一维前缀和 ...

  6. 激光导弹Gundam Unicorn(二维前缀和and二维差分)

    激光炸弹和Gundam Unicorn是二维前缀和和二位差分的综合应用. 首先是一二维差分,前缀和的模板前缀和与差分 图文并茂 超级详细整理(全网最通俗易懂)_林深不见鹿 的博客-CSDN博客_前缀和 ...

  7. 【二维前缀和】304. 二维区域和检索 - 矩阵不可变

    目录 题目 前缀和解法(二维) 二维vector 定义 这道题是「303. 区域和检索 - 数组不可变」的进阶,第 303 题是在一维数组中做区域和检索,这道题是在二维矩阵中做区域和检索. 题目 30 ...

  8. 中石油训练赛 - Block(二维前缀和+思维)

    题目描述 Alice得到了一张由n×m个黑白像素点组成的图片,她想要压缩这张图片.压缩图片的过程如下: 1.首先,选择一个正整数k(k>1),将图片划分成若干个k×k的小块.如果n,m不能被k整 ...

  9. leetcode 304. Range Sum Query 2D - Immutable |304. 二维区域和检索 - 矩阵不可变(二维前缀和问题)

    题目 https://leetcode.com/problems/range-sum-query-2d-immutable/ 题解 本题是 medium 难度,二维前缀和问题.相似题目有: Easy: ...

  10. 二维树状数组模板(区间修改+区间查询)

    二维树状数组模板(区间修改+区间查询) 例题:JOIOI上帝造题的七分钟 一共两种操作: \(L\ x_1\ y_1\ x_2\ y_2\ d\):把\((x_1,y_1)\),\((x_2,y_2) ...

最新文章

  1. 【计算理论】计算复杂性 ( 时间复杂度时间单位 : 步数 | 算法分析 | 算法复杂性分析 )
  2. linux:tomcat写入文件失败
  3. android分屏模式_浅谈 Android 7.0 多窗口分屏模式的实现
  4. rman copy相关
  5. NG-ZORRO 7.0.1 发布,Ant Design 的 Angular 实现
  6. DFS Codeforces Round #290 (Div. 2) B. Fox And Two Dots
  7. 见面才是最好的沟通方式,商机都藏在聊天中
  8. JAVA发送HttpClient请求及接收请求结果过程
  9. leetCode:reverseInteger 反向整数 【JAVA实现】
  10. Mac上使用网易云音乐上传音乐mp3到“我的音乐云盘”
  11. pod访问外部mysql_Pod中访问外部的域名配置
  12. 论文翻译:(BMVC 2022)You Only Need 90K Parameters to Adapt Light:a Light Weight Transformer
  13. wps表格怎么按特定的顺序对数据进行排序
  14. 计算机配置64位,任何电脑都可以装64位系统吗|是不是所有的电脑都可以装64位系统...
  15. 华盈IP PBX UC1910统一网关
  16. 5G Massive MIMO的概念和优点总结
  17. 共享池,java池,大型池,PGA,SGA 笼统概念
  18. iTOP-4418开发板Linux系统移植modbus-arm的测试程序
  19. 奇富科技语音论文入选国际顶会INTERSPEECH 2023
  20. 中国护士总量严重不足 “滴滴打针”会是水中捞月吗?

热门文章

  1. 使用工具(Database Configuration Assistant)创建Oracle数据库
  2. html语言应用规则,html所选标签没有应用CSS规则是什么意 – 手机爱问
  3. jeesite 去掉 /a
  4. 7.2 高速缓冲存储器-Cache
  5. Java学习笔记之方法
  6. MySQL DEBUG_SYNC 的简单分析与测试
  7. 《Entity Framework 6 Recipes》中文翻译系列 (45) ------ 第八章 POCO之获取原始对象与手工同步对象图和变化跟踪器...
  8. Android浏览图片,点击放大至全屏效果
  9. 这是一个关键……可是这个门槛我上不去了
  10. 【渗透测试实战】具体案例——讲讲SQL注入攻击是怎么回事?