二维前缀和(附模板题)
模板
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行
二维前缀和(附模板题)相关推荐
- ~~二维差分(附模板题)
模板 给以(x1, y1)为左上角,(x2, y2)为右下角的子矩阵中的所有元素加上c: S[x1, y1] += c, S[x2 + 1, y1] -= c, S[x1, y2 + 1] -= c, ...
- 《算法竞赛进阶指南》打卡-基本算法-AcWing 99. 激光炸弹:二维前缀和
文章目录 题目解答 题目来源 题目解答 来源:acwing 分析: 前缀和习惯从下标1开始. 注意:本题是不包含边界的.什么意思? 以样例为例,这里有两个点,分别在(0,0) 和(1,1),且攻击的矩 ...
- 基础算法:二维前缀和
二维前缀和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](表示当前的数) ...
- 牛妹吃豆子(二维前缀和模板,修改+求和)
调了半天忘了要求两次前缀和了. 先对前缀和数组进行修改, 第一次求前缀和得到的是修改后的原矩阵,再求一次前缀和得到二维前缀和,然后根据容斥定理求区间的二维前缀和即可 #include<iostr ...
- 【题集】一维前缀和-二维前缀和-数星星问题-反复运行时如何降低时间复杂度
目录 1前缀和 1.1一维前缀和 1.2二维前缀和 2.题目 2.1输入描述: 2.2输出描述: 2.3输入 2.4输出 3.题目理解 3.1思路 4.程序 4.1运行结果 1前缀和 1.1一维前缀和 ...
- 激光导弹Gundam Unicorn(二维前缀和and二维差分)
激光炸弹和Gundam Unicorn是二维前缀和和二位差分的综合应用. 首先是一二维差分,前缀和的模板前缀和与差分 图文并茂 超级详细整理(全网最通俗易懂)_林深不见鹿 的博客-CSDN博客_前缀和 ...
- 【二维前缀和】304. 二维区域和检索 - 矩阵不可变
目录 题目 前缀和解法(二维) 二维vector 定义 这道题是「303. 区域和检索 - 数组不可变」的进阶,第 303 题是在一维数组中做区域和检索,这道题是在二维矩阵中做区域和检索. 题目 30 ...
- 中石油训练赛 - Block(二维前缀和+思维)
题目描述 Alice得到了一张由n×m个黑白像素点组成的图片,她想要压缩这张图片.压缩图片的过程如下: 1.首先,选择一个正整数k(k>1),将图片划分成若干个k×k的小块.如果n,m不能被k整 ...
- leetcode 304. Range Sum Query 2D - Immutable |304. 二维区域和检索 - 矩阵不可变(二维前缀和问题)
题目 https://leetcode.com/problems/range-sum-query-2d-immutable/ 题解 本题是 medium 难度,二维前缀和问题.相似题目有: Easy: ...
- 二维树状数组模板(区间修改+区间查询)
二维树状数组模板(区间修改+区间查询) 例题:JOIOI上帝造题的七分钟 一共两种操作: \(L\ x_1\ y_1\ x_2\ y_2\ d\):把\((x_1,y_1)\),\((x_2,y_2) ...
最新文章
- 【计算理论】计算复杂性 ( 时间复杂度时间单位 : 步数 | 算法分析 | 算法复杂性分析 )
- linux:tomcat写入文件失败
- android分屏模式_浅谈 Android 7.0 多窗口分屏模式的实现
- rman copy相关
- NG-ZORRO 7.0.1 发布,Ant Design 的 Angular 实现
- DFS Codeforces Round #290 (Div. 2) B. Fox And Two Dots
- 见面才是最好的沟通方式,商机都藏在聊天中
- JAVA发送HttpClient请求及接收请求结果过程
- leetCode:reverseInteger 反向整数 【JAVA实现】
- Mac上使用网易云音乐上传音乐mp3到“我的音乐云盘”
- pod访问外部mysql_Pod中访问外部的域名配置
- 论文翻译:(BMVC 2022)You Only Need 90K Parameters to Adapt Light:a Light Weight Transformer
- wps表格怎么按特定的顺序对数据进行排序
- 计算机配置64位,任何电脑都可以装64位系统吗|是不是所有的电脑都可以装64位系统...
- 华盈IP PBX UC1910统一网关
- 5G Massive MIMO的概念和优点总结
- 共享池,java池,大型池,PGA,SGA 笼统概念
- iTOP-4418开发板Linux系统移植modbus-arm的测试程序
- 奇富科技语音论文入选国际顶会INTERSPEECH 2023
- 中国护士总量严重不足 “滴滴打针”会是水中捞月吗?
热门文章
- 使用工具(Database Configuration Assistant)创建Oracle数据库
- html语言应用规则,html所选标签没有应用CSS规则是什么意 – 手机爱问
- jeesite 去掉 /a
- 7.2 高速缓冲存储器-Cache
- Java学习笔记之方法
- MySQL DEBUG_SYNC 的简单分析与测试
- 《Entity Framework 6 Recipes》中文翻译系列 (45) ------ 第八章 POCO之获取原始对象与手工同步对象图和变化跟踪器...
- Android浏览图片,点击放大至全屏效果
- 这是一个关键……可是这个门槛我上不去了
- 【渗透测试实战】具体案例——讲讲SQL注入攻击是怎么回事?