【HDU - 1559】最大子矩阵 (二维前缀和裸题)
题干:
给你一个m×n的整数矩阵,在上面找一个x×y的子矩阵,使子矩阵中所有元素的和最大。
Input
输入数据的第一行为一个正整数T,表示有T组测试数据。每一组测试数据的第一行为四个正整数m,n,x,y(0<m,n<1000 AND 0<x<=m AND 0<y<=n),表示给定的矩形有m行n列。接下来这个矩阵,有m行,每行有n个不大于1000的正整数。
Output
对于每组数据,输出一个整数,表示子矩阵的最大和。
Sample Input
1 4 5 2 2 3 361 649 676 588 992 762 156 993 169 662 34 638 89 543 525 165 254 809 280
Sample Output
2474
解题报告:
预处理一个前缀和然后O1查询就行了。(四个月前写的题今天在学最小环问题的时候忽然发现了,emmm拿出来写一个博客吧)
AC代码:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int MAX = 1e3 + 5;
const int INF = 0x3f3f3f3f;
ll a[MAX][MAX];int main()
{int t;int m,n,x,y;ll maxx;cin>>t;while(t--) {maxx = -INF;scanf("%d%d%d%d",&m,&n,&x,&y);for(int i = 1; i<=m; i++) {for(int j = 1; j<=n; j++) {scanf("%lld",&a[i][j]);}}for(int i = 1; i<=m; i++) {for(int j = 1; j<=n; j++) {a[i][j] = a[i][j] + a[i-1][j] + a[i][j-1] - a[i-1][j-1];}}//从i,j开始 到 i+x-1,j+y-1 for(int i = 1; i<=m-x+1; i++) {for(int j = 1; j<=n-y+1; j++) {maxx = max(maxx,a[i+x-1][j+y-1]-a[i+x-1][j-1]-a[i-1][j+y-1]+a[i-1][j-1]);}}printf("%lld\n",maxx);}return 0 ;
}
【HDU - 1559】最大子矩阵 (二维前缀和裸题)相关推荐
- 【HDU - 1937 】Finding Seats(二维前缀和+尺取法)
题干: A group of K friends is going to see a movie. However, they are too late to get good tickets, so ...
- 2018 Multi-University Training Contest 4 Problem E. Matrix from Arrays 【打表+二维前缀和】
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6336 Problem E. Matrix from Arrays Time Limit: 4000/20 ...
- 二维前缀和+差分 HDU6514 Monitor
Monitor [ HDU - 6514 ] 题目大意:给你个n×m的区域,每个区域被选中标记为1,没被选中标记为0,然后给一些标记的区域,查询若干个区域问是否有0的 一道二维前缀和的题目,想通没什么 ...
- 海啸(二维前缀和/二维树状数组)
链接:https://ac.nowcoder.com/acm/problem/21862 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...
- Gym 102091L Largest Allowed Area 【二分+二维前缀和】
<题目链接> 题目大意: 给你一个由01组成的矩形,现在问你,该矩形中,最多只含一个1的正方形的边长最长是多少. 解题分析: 用二维前缀和维护一下矩形的01值,便于后面直接$O(1)$查询 ...
- AcWing 99. 激光炸弹 (二维前缀和)
99. 激光炸弹 题意 给定一个5000x5000的地图 随机在该地图上放置物品,物品具有价值,且不同物品可以放置在同一位置 有一个炸弹的爆炸范围为RxR的正方形 问该炸弹在地图上爆炸一次,最多能摧毁 ...
- 模版 ----- 一维前缀和与二维前缀和
一维前缀和 795. 前缀和 a[i] 的前 i 项和 s[i] 的递推公式:s[i]=s[i−1]+a[i]s[i] = s[i - 1] + a[i]s[i]=s[i−1]+a[i] 求出在 [l ...
- 一维前缀和,二维前缀和,一维差分,二维差分(翻译)
练习一道题目 输入一个长度为n的整数序列. 接下来再输入m个询问,每个询问输入一对l, r. 对于每个询问,输出原序列中从第l个数到第r个数的和. 输入格式 第一行包含两个整数n和m. 第二行包含n个 ...
- 激光导弹Gundam Unicorn(二维前缀和and二维差分)
激光炸弹和Gundam Unicorn是二维前缀和和二位差分的综合应用. 首先是一二维差分,前缀和的模板前缀和与差分 图文并茂 超级详细整理(全网最通俗易懂)_林深不见鹿 的博客-CSDN博客_前缀和 ...
最新文章
- 【Dlib】使用dlib_face_recognition_resnet_model_v1.dat无法实现微调fune-tuning
- ISME:多组学揭示低氧环境下的汞甲基化细菌
- c/c++ c++ file c++/stl/boost 判断文件目录是否存在
- matplotlib 模块 画图 例2
- 第001期:数据中心知识问答
- 如何获取某个标签下所有的元素id_D3库实践笔记之元素定位与数据绑定 |可视化系列33...
- gazebo入门_Gazebo仿真控制中,有哪些你不知道的秘密?
- 让步的人,最值得深交
- Jmeter接口测试使用beanshell断言json返回
- 【英语学习】【Level 07】U01 Making friends L3 Do you eat here a lot?
- 【Flink】Flink 1.12.2 TaskSlotTable
- pandas 如何删掉第一行_Pandas-数据筛选
- 微信也QQ服务器,妄想山海QQ区还是微信区好 平民服务器选择推荐
- 【Linux学习笔记】9. Linux打包压缩解压缩命令tar
- oeasy教您玩转vim - 52 - # 正则查找
- C++中mian中的参数
- [036] 微信公众帐号开发教程第12篇-符号表情的发送(下)
- 如何克服自己懒惰的坏习惯?
- 信息安全立法现状与形式责任
- <httpasyncclient>高并发场景报错分析与解决
热门文章
- 85. Maximal Rectangle
- 动态规划6个题目总结比较
- [Leetcode][第785题][JAVA][判断二分图][BFS][DFS]
- [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第4篇] P类复杂问题
- mysql 8.0.12解压版安装教程_mysql 8.0.12 解压版安装教程
- mysql tungsten_使用tungsten将mysql的数据同步到hadoop
- android实现3种定位的切换,Android 滑动定位+吸附悬停效果实现
- 1388C. Uncle Bogdan and Country Happiness
- python vtk_VTK在python环境下的安装和调用
- 关闭SQLite3中的journal暂存档