题目:

给出一个 nn 行 mm 列的矩阵,矩阵的每个位置有一个非负整数 a[i][j],有 qq 次询问,每次询问求一个左上角为 (a,b),右下角为 (c,d) 的子矩阵的所有数之和。

输入格式

第一行两个整数 n,m,表示矩阵的行和列的大小。

接下来 nn 行每行 m 个整数,为矩阵内容。

接下来一行为一个整数 q ,表示询问次数。

接下来 q 行每行 44 个整数 a,b,c,d,含义见题面。

输出格式

共 q 行,第 i 行为第 i个询问的答案。

数据范围
n×m≤100,000,a[i][j]≤1000,q≤100,000,1≤a≤c≤n,1≤b≤d≤m。n×m≤100,000,a[i][j]≤1000,q≤100,000, 1≤a≤c≤n,1 \le b \le d \le m。n×m≤100,000,a[i][j]≤1000,q≤100,000,1≤a≤c≤n,1≤b≤d≤m。

输出时每行末尾的多余空格,不影响答案正确性

要求使用「文件输入输出」的方式解题,输入文件为 sum.in,输出文件为 sum.out

样例输入

3 5
1 2 3 4 5
3 2 1 4 7
2 4 2 1 2
3
1 1 3 5
2 2 3 3
1 1 3 3

样例输出

43
9
20

分析:

1、先打表计算二维前缀和,再进行之后每次的查询。
2、需要使用数据结构vector存储数据。因为n×m≤100,000n×m≤100,000n×m≤100,000,要是开二维数组会爆,所以用vector容器存数据。

如图所示,假设要求S的话,可以用最大的矩形和减去S1+S2,再减去S1+S3,最后再加上S1即可。

AC代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
const int M=1e5+10;
const int inf=0x3f3f3f3f;
int n,m,k;
vector<int>mp[M];
int main(){freopen("sum.in", "r", stdin);freopen("sum.out", "w", stdout);scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){mp[i].push_back(0);for(int j=1;j<=m;j++){int x;scanf("%d",&x);mp[i].push_back(x);}}for(int i=0;i<=m;i++)mp[0].push_back(0);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)mp[i][j]+=mp[i-1][j]+mp[i][j-1]-mp[i-1][j-1];scanf("%d",&k);while(k--){int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);int ans=mp[c][d]+mp[a-1][b-1]-mp[a-1][d]-mp[c][b-1];printf("%d\n",ans);}
}
/**
5 5
636 848 745 281 87
895 796 850 713 242
16 128 270 845 922
338 690 30 327 273
779 154 192 656 64
5
2 1  4 2
1 1  1 1
2 1  4 2
2 1  4 2
2 1  2 3
*/

构造前缀贪心+ 计蒜客 子矩阵求和相关推荐

  1. 计蒜客 T1853:非常男女(前缀和)

    上一篇博客计蒜客 T1101:大整数的因子(高精度除法详解)  写在前面:大家好!我是ACfun,我的昵称来自两个单词Accepted和fun.我是一个热爱ACM的蒟蒻.这篇博客来记录一下计蒜客T18 ...

  2. [计蒜客][贪心]节约用电

    题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛) 算法标签 贪心 题目描述 思路 事实上就是一维的线上从左到右标记所有M距离的点,相当于用距离为依据划分成N个等分,中间的数量就是答案的数量样例一: 3 ...

  3. 计蒜客2020蓝桥杯大学A组模拟赛题解

    计蒜客2020蓝桥杯大学A组模拟赛题解 蓝桥杯的话,去年拿了C++组的国二.今年报名了新成立的Python组,不知道能不能摸到国一的鱼 模拟赛链接如下: https://www.jisuanke.co ...

  4. 计蒜客 17115 2017 ICPC 西安网络赛 B Coin

    Problem nanti.jisuanke.com/t/17115 Reference 关于二项展开式系数和 [二项式定理][推导]计蒜客17115 2017 ACM-ICPC 亚洲区(西安赛区)网 ...

  5. DD 摆磁铁(计蒜客信息学8月普及组模拟赛)

    DD 摆磁铁 这道题来自 计蒜客信息学8月普及组模拟赛 普及组!! 把我一个TG选手看懵了 看来我要回去打普及了 题目大意 给出一个n个节点的树,要把树上给定的2*m个节点两两配对,两个节点配对的产生 ...

  6. 计蒜客 2020 蓝桥杯大学 A 组省赛模拟赛 (一)题目及解析

    新手,欢迎交流,剩下D题不知如何下手,望大佬指教. 计蒜客 2020 蓝桥杯大学 B 组省赛模拟赛 (一)题目及解析 文章目录 A. 结果填空:计算周长 B. 结果填空:七巧板 C. 结果填空:苹果 ...

  7. 计蒜客 T1895切蛋糕(单调队列)

    题目:传送阵 思路: 分析题目,简单的说这个题目求的就是最大不定长子段和,那么首先对于最大不定长子段和,我们肯定要首先预处理前缀和数组,然后首先朴素的想, 对于以第i个元素结尾的子段,最大的子段和re ...

  8. 计蒜客 - 新年礼物

    计蒜客 新年礼物 新年了,蒜厂 BOSS 要给小蒜头们发新年礼物,新年礼物有很多份,怎么分配这些礼物呢?蒜厂 BOSS 打算让大家玩一个游戏. 蒜头们可以从抽奖箱里抽出 NNN 个字符串,第 iii ...

  9. 计蒜客 2020 蓝桥杯大学 B 组省赛模拟赛 (一)题目及解析

    新手,欢迎交流,更新完毕. 计蒜客 2020 蓝桥杯大学 A 组省赛模拟赛 (一)题目及解析 文章目录 A. 结果填空:有趣的数字 B. 结果填空:爬楼梯 C. 结果填空:七巧板 D. 结果填空:苹果 ...

最新文章

  1. Android 动画汇总-自定义动画
  2. 提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
  3. jquery技巧总结 学习
  4. 基于jQuery会员中心安全修改表单代码
  5. 如何通过css选取元素以及封装了获取,删除css的相关操作
  6. 【题解】lugu P4095 Eden的新背包问题
  7. 这些常见的分布式存储系统,你是否都了解?
  8. ffmpeg 无法找到libpostproc的问题
  9. 【kafka】FLink kafka Unable to retrieve any partitions with KafkaTopicsDescriptor: Fixed Topics
  10. postgresql编译安装及配置
  11. Bailian4137 最小新整数【Ad Hoc】
  12. 拓端tecdat|R语言时间序列TAR阈值自回归模型
  13. php数组教程,PHP 数组入门教程小结
  14. 语义表示——神经网络与深度学习
  15. 行为式验证码小侃,滑块验证码详解
  16. DolphinDB:金融高频因子流批统一计算神器!
  17. 微信小游戏开发实战教程3-绘制网格
  18. Logo设计没灵感?这7个宝藏网站拯救你的头发
  19. Java基础——LinkedList源码分析
  20. OpenCVSharp入门教程 特征提取③——HoughLinesP直线寻找,直线提取

热门文章

  1. 剑指offer之分行从上到下打印二叉树
  2. Android插件化开发基础之App如何动态加载类
  3. Android之SlidingMenu使用和总结
  4. 【C语言简单说】十:小结
  5. 我的世界java版月步教程_《我的世界》月步?幻影剑?大神才会的骚操作 第一个我就跪了!...
  6. 移动端 登陆 模板 html_聚会邀请函请柬模板 免费设计制作生成
  7. 你和女朋友的婚后老年生活!
  8. 当女朋友生气了而你却没发现 !!!
  9. 下班以后看什么,决定你人生的高度
  10. 男科医生到底有多不正经… | 今日最佳