【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 ;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php _invoke 闭包,PHP新特性之闭包、匿名函数

闭包闭包是什么&#xff1f;1).闭包和匿名函数在PHP5.3中被引入。2).闭包是指在创建时封装函数周围状态的函数&#xff0c;即使闭包所在的环境不存在了&#xff0c;闭包封装的状态依然存在&#xff0c;这一点和Javascript的闭包特性很相似。3).匿名函数就是没有名称的函数&…

*【UVA - 10382】Watering Grass(贪心,区间覆盖问题,思维)

题干&#xff1a; 题目大意&#xff1a; 有一块草坪&#xff0c;长为l&#xff0c;宽为w&#xff0c;在它的水平中心线上有n个位置可以安装喷水装置&#xff0c;各个位置上的喷水装置的覆盖范围为以它们自己的半径ri为圆。求出最少需要的喷水装置个数&#xff0c;如果无论如何…

oracle如何把字符集改回默认,更改oracle字符集

在安装oracle时&#xff0c;选了默认字符集是utf8&#xff0c;后来发现与plsql developer工具联合使用时&#xff0c;会出现各种乱码问题。再加上我的项目也是gbk的&#xff0c;因此&#xff0c;将字符集改成gbk试试。步骤如下&#xff1a;1.查看当前的字符集和语言select * fr…

【HDU - 2570】迷瘴 (贪心,水题,排序,卡精度有坑)

题干&#xff1a; 通过悬崖的yifenfei&#xff0c;又面临着幽谷的考验—— 幽谷周围瘴气弥漫&#xff0c;静的可怕&#xff0c;隐约可见地上堆满了骷髅。由于此处长年不见天日&#xff0c;导致空气中布满了毒素&#xff0c;一旦吸入体内&#xff0c;便会全身溃烂而死。 幸好…

oracle 1天后,Oracle Code One - 第1天 精彩亮点回顾

原标题&#xff1a;Oracle Code One - 第1天 精彩亮点回顾原文作者&#xff1a;Padmini Murthy 产品营销总监2018年Oracle CodOracle CodeOne大会实况 – 第1天2018年Oracle CodeOne大会开幕第一天&#xff0c;精彩纷呈&#xff0c;乐趣繁多。从Developers Exchange活动的欢畅交…

【牛客 - 303D第十五届浙江大学宁波理工学院程序设计大赛(同步赛)】Campaign(二进制枚举,位运算,暴力,思维)

题干&#xff1a; 星际争霸(StarCraft)单人战役模式中有很多供人游玩的任务关卡。 tokitsukaze新开始了一关单人战役模式下的任务。在这场战役中&#xff0c;你要作为指挥官指挥克鲁普星区的艾伦人类(Terran)来防御人类的敌人——邪恶异虫(Zerg)的袭击。 这一次&#xff0c;…

oracle mssql 实例,oracle,mysql,SqlServer三种数据库的分页查询的实例

MySql&#xff1a;MySQL数据库实现分页比较简单&#xff0c;提供了 LIMIT函数。一般只需要直接写到sql语句后面就行了。LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量&#xff0c;它有一个或两个参数&#xff0c;如果给出两个参数&#xff0c; 第一个参数指定返回的第…

【牛客 - 303H第十五届浙江大学宁波理工学院程序设计大赛(同步赛)】Protoss and Zerg(快速幂取模,组合数学)

题干&#xff1a; 1v1&#xff0c;是星际争霸(StarCraft)中最常见的竞技模式。 tokitsukaze进行了n场1v1。在每一场的1v1中&#xff0c;她都有星灵(Protoss)和异虫(Zerg)两个种族可以选择&#xff0c;分别有a个单位和b个单位。因为tokitsukaze不太擅长玩人类(Terran)&#x…

oracle 控制文件冗余,Oracle 添加冗余控制文件 for RAC On Linux

萌哒萌哒的分割线注&#xff1a;添加冗余控制文件期间需要有关库操作&#xff0c;需注意&#xff01;&#xff01;&#xff01;备份控制文件SQL> alter session set tracefile_identifier‘backupctrl‘;Session altered.SQL> alter database backup controlfile to trac…

【牛客 - 303B第十五届浙江大学宁波理工学院程序设计大赛(同步赛)】Fibonacci and Counting(Fib数性质,gcd辗转相除法性质)

题干&#xff1a; 我们这样定义斐波那契数列&#xff0c;F[1]1,F[2]1&#xff0c;当n>2时F[n]F[n-1]F[n-2]。 斐波那契数列的前10项为&#xff1a;1,1,2,3,5,8,13,21,34,55。 欧几里得算法求解两个数的最大公约数。我们记gcd(a,b)为整数a与b的最大公约数。 当b0时&…

【牛客 - 303K第十五届浙江大学宁波理工学院程序设计大赛(同步赛)】Technology Tree(树形dp,tricks)

题干&#xff1a; 在星际争霸(StarCraft)中&#xff0c;有3个种族。对于任意一个种族&#xff0c;他们的建筑建造都是有一个顺序的。这个顺序正好是一个树形结构&#xff0c;我们称之为"科技树"(Technology tree)。 在科技树中&#xff0c;只有一个建筑是不需要前…

oracle基表恢复,查找V$PARAMETER 基表 – 专业Oracle数据库恢复,或许是您恢复数据的最后机会@phone:13429648788 - 专业Oracle数据库恢复技术支持...

1、使用trace查找show parameter执行语句alter session set events 10046 trace name context forever,level 12;show parameter process;alter session set events 10046 trace name context off;2、查找trace文件SELECT d.VALUE|| /|| LOWER (RTRIM (i.INSTANCE, CHR (0)))||…

【HDU - 1599】find the mincost route (Floyd最小环,最短路问题)

题干&#xff1a; 杭州有N个景区&#xff0c;景区之间有一些双向的路来连接&#xff0c;现在8600想找一条旅游路线&#xff0c;这个路线从A点出发并且最后回到A点&#xff0c;假设经过的路线为V1,V2,....VK,V1,那么必须满足K>2,就是说至除了出发点以外至少要经过2个其他不同…

linux中创建目录树,如何在C++/Linux中创建目录树?

Jonathan Lef..58这是一个可以用C编译器编译的C函数./*(#)File: $RCSfile: mkpath.c,v $(#)Version: $Revision: 1.13 $(#)Last changed: $Date: 2012/07/15 00:40:37 $(#)Purpose: Create all directories in path(#)Author: J Leffler(#)Copyright: (C) JLSS 1990-91,1997-98…

linux socket bind 内核详解,Socket与系统调用深度分析(示例代码)

1、 什么是系统调用操作系统通过系统调用为运行于其上的进程提供服务。当用户态进程发起一个系统调用&#xff0c; CPU 将切换到 内核态 并开始执行一个 内核函数 。 内核函数负责响应应用程序的要求&#xff0c;例如操作文件、进行网络通讯或者申请内存资源等。在Linux中系统调…

【UVA - 11729】Commando War (贪心,时间调度问题)

题干&#xff1a;&#xff08;Uva不放题干了&#xff09; 题目大意&#xff1a;&#xff08;实在是自己懒得写网上找了一个&#xff09; 解题报告&#xff1a; 调度问题&#xff0c;直接贪心出完成任务需要的时间最长的那个人排序&#xff0c;就行了。 方法正确性的证明以前也…

【UVA - 1335】Beijing Guards (贪心,二分)

题干&#xff1a; 题目大意&#xff1a; 有n个人为成一个圈&#xff0c;其中第i个人想要r[i]种不同的礼物&#xff0c;相邻的两个人可以聊天&#xff0c;炫耀自己的礼物。如果两个相邻的人拥有同一种礼物&#xff0c;则双方都会很不高兴&#xff0c;问最少需要多少种不同的礼…

linux两个命令一起,paste命令 – 合并两个文件

paste命令会把每个文件以列对列的方式&#xff0c;一列列地加以合并 &#xff0c;他就是相当于把两个不同的文件内容粘贴在一起&#xff0c;形成新的文件。注意&#xff1a;paste默认粘贴方式以列的方式粘贴&#xff0c;但是并不是不能以行的方式粘贴&#xff0c;加上-s选项就可…

【UVA - 11292】Dragon of Loowater (贪心,水题,模拟,twopointer双指针)

题干&#xff1a; 题目大意&#xff1a; n条恶龙&#xff0c;m个勇士&#xff0c;用勇士来杀恶龙。一个勇士只能杀一个恶龙。而且勇士只能杀直径不超过自己能力值的恶龙。每个勇士需要支付能力值一样的金币。问杀掉所有恶龙需要花费的最少金币。 解题报告&#xff1a; twopo…

linux 命令pg,linux下操作PostgreSQL的常用命令

一般性&#xff1a;\copyright 显示PostgreSQL的使用和发行许可条款\g [文件] or; 执行查询 (并把结果写入文件或 |管道)\h [名称] SQL命令语法上的说明&#xff0c;用*显示全部命令的语法说明\q 退出 psql查询缓存区\e [FILE] [LINE] 使用外部编辑器编辑查询缓存区(或文件)\ef…