构造前缀贪心+ 计蒜客 子矩阵求和
题目:
给出一个 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
*/
构造前缀贪心+ 计蒜客 子矩阵求和相关推荐
- 计蒜客 T1853:非常男女(前缀和)
上一篇博客计蒜客 T1101:大整数的因子(高精度除法详解) 写在前面:大家好!我是ACfun,我的昵称来自两个单词Accepted和fun.我是一个热爱ACM的蒟蒻.这篇博客来记录一下计蒜客T18 ...
- [计蒜客][贪心]节约用电
题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛) 算法标签 贪心 题目描述 思路 事实上就是一维的线上从左到右标记所有M距离的点,相当于用距离为依据划分成N个等分,中间的数量就是答案的数量样例一: 3 ...
- 计蒜客2020蓝桥杯大学A组模拟赛题解
计蒜客2020蓝桥杯大学A组模拟赛题解 蓝桥杯的话,去年拿了C++组的国二.今年报名了新成立的Python组,不知道能不能摸到国一的鱼 模拟赛链接如下: https://www.jisuanke.co ...
- 计蒜客 17115 2017 ICPC 西安网络赛 B Coin
Problem nanti.jisuanke.com/t/17115 Reference 关于二项展开式系数和 [二项式定理][推导]计蒜客17115 2017 ACM-ICPC 亚洲区(西安赛区)网 ...
- DD 摆磁铁(计蒜客信息学8月普及组模拟赛)
DD 摆磁铁 这道题来自 计蒜客信息学8月普及组模拟赛 普及组!! 把我一个TG选手看懵了 看来我要回去打普及了 题目大意 给出一个n个节点的树,要把树上给定的2*m个节点两两配对,两个节点配对的产生 ...
- 计蒜客 2020 蓝桥杯大学 A 组省赛模拟赛 (一)题目及解析
新手,欢迎交流,剩下D题不知如何下手,望大佬指教. 计蒜客 2020 蓝桥杯大学 B 组省赛模拟赛 (一)题目及解析 文章目录 A. 结果填空:计算周长 B. 结果填空:七巧板 C. 结果填空:苹果 ...
- 计蒜客 T1895切蛋糕(单调队列)
题目:传送阵 思路: 分析题目,简单的说这个题目求的就是最大不定长子段和,那么首先对于最大不定长子段和,我们肯定要首先预处理前缀和数组,然后首先朴素的想, 对于以第i个元素结尾的子段,最大的子段和re ...
- 计蒜客 - 新年礼物
计蒜客 新年礼物 新年了,蒜厂 BOSS 要给小蒜头们发新年礼物,新年礼物有很多份,怎么分配这些礼物呢?蒜厂 BOSS 打算让大家玩一个游戏. 蒜头们可以从抽奖箱里抽出 NNN 个字符串,第 iii ...
- 计蒜客 2020 蓝桥杯大学 B 组省赛模拟赛 (一)题目及解析
新手,欢迎交流,更新完毕. 计蒜客 2020 蓝桥杯大学 A 组省赛模拟赛 (一)题目及解析 文章目录 A. 结果填空:有趣的数字 B. 结果填空:爬楼梯 C. 结果填空:七巧板 D. 结果填空:苹果 ...
最新文章
- Android 动画汇总-自定义动画
- 提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
- jquery技巧总结 学习
- 基于jQuery会员中心安全修改表单代码
- 如何通过css选取元素以及封装了获取,删除css的相关操作
- 【题解】lugu P4095 Eden的新背包问题
- 这些常见的分布式存储系统,你是否都了解?
- ffmpeg 无法找到libpostproc的问题
- 【kafka】FLink kafka Unable to retrieve any partitions with KafkaTopicsDescriptor: Fixed Topics
- postgresql编译安装及配置
- Bailian4137 最小新整数【Ad Hoc】
- 拓端tecdat|R语言时间序列TAR阈值自回归模型
- php数组教程,PHP 数组入门教程小结
- 语义表示——神经网络与深度学习
- 行为式验证码小侃,滑块验证码详解
- DolphinDB:金融高频因子流批统一计算神器!
- 微信小游戏开发实战教程3-绘制网格
- Logo设计没灵感?这7个宝藏网站拯救你的头发
- Java基础——LinkedList源码分析
- OpenCVSharp入门教程 特征提取③——HoughLinesP直线寻找,直线提取