Maximum Sum UVA - 108(连续子序列最大和—变形之子矩阵最大和)

题目大意:给出 n*n 的矩阵,找每隔数字之和最大的子矩阵,输出最大和。 
解题思路:枚举矩阵左上和右下的坐标,分别合并子矩阵的每列,使得二维转化为一维,然后利用连续子序列最大和去做就行。

Time limit    3000 ms

题目描述:

A problem that is simple to solve in one dimension is often much more difficult to solve in more than one dimension. Consider satisfying a boolean expression in conjunctive normal form in which each conjunct consists of exactly 3 disjuncts. This problem (3-SAT) is NP-complete. The problem 2-SAT is solved quite efficiently, however. In contrast, some problems belong to the same complexity class regardless of the dimensionality of the problem.

Given a 2-dimensional array of positive and negative integers, find the sub-rectangle with the largest sum. The sum of a rectangle is the sum of all the elements in that rectangle. In this problem the subrectangle with the largest sum is referred to as the maximal sub-rectangle.

A sub-rectangle is any contiguous sub-array of size 1 × 1 or greater located within the whole array. As an example, the maximal sub-rectangle of the array:

                                  0     −2     −7       0

                                  9       2     −6       2

                                −4       1     −4       1

                                −1       8        0     −2

is in the lower-left-hand corner:

                                  9      2

                                −4      1

                                −1      8

and has the sum of 15.

Input

The input consists of an N × N array of integers.

The input begins with a single positive integer N on a line by itself indicating the size of the square two dimensional array. This is followed by N2 integers separated by white-space (newlines and spaces). These N2 integers make up the array in row-major order (i.e., all numbers on the first row, left-to-right, then all numbers on the second row, left-to-right, etc.). N may be as large as 100. The numbers in the array will be in the range [−127, 127].

Output

The output is the sum of the maximal sub-rectangle.

Sample Input

   4

   0     −2     −7       0

   9       2     −6       2

 −4       1     −4       1

 −1       8        0     −2

Sample Output

15

题目理解:即在矩形中得到一个小矩形中总和最大数,即遍历长宽高

#include<iostream>
#include<string.h>
#define inf 0x3f3f3f3f
using namespace std;
int n,dp[1010][1010],ans;
int main()
{while(cin>>n){for(int i=0; i<n; i++)for(int j=0; j<n; j++)cin>>dp[i][j];ans=dp[0][0];for(int i=0; i<n; i++)for(int j=0; j<n; j++)if(j>=i){int sum=0;for(int k=0; k<n; k++){int step=0;for(int u=i; u<=j; u++){step+=dp[u][k];}sum+=step;if(sum>ans)ans=sum;if(sum<0)sum=0;}}cout<<ans<<endl;}return 0;
}

 

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

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

相关文章

甲方爸爸,大概你要的是代码生成器吧?

作者&#xff1a;邹溪源&#xff0c;长沙资深互联网从业者&#xff0c;架构师社区特邀嘉宾&#xff01;一1&#xff09;有一天&#xff0c;我的朋友Y童鞋分享了他正在做的一个内部开源项目&#xff0c;这个开源项目从外表上看&#xff0c;跟目前市场上那些代码生成器本没有特别…

使用pdf.js来预览pdf文件_适用于Dynamics365与PowerApps的注释预览组件

powerapps/dynamics365适用的注释预览/批量下载组件自定义组件为预览功能原生预览支持的文件类型:图像,zip,音频,pdf支持批量打包注释为zip下载到本地使用浏览器预览支持:音频,视频,图像,pdf,文本,xml,json等,理论上只需要浏览器支持打开的文件类型,均可预览使用方法:1.导入解决…

[PAT乙级]1001 害死人不偿命的(3n+1)猜想

卡拉兹(Callatz)猜想&#xff1a; 对任何一个正整数 n&#xff0c;如果它是偶数&#xff0c;那么把它砍掉一半&#xff1b;如果它是奇数&#xff0c;那么把 (3n1) 砍掉一半。这样一直反复砍下去&#xff0c;最后一定在某一步得到 n1。卡拉兹在 1950 年的世界数学家大会上公布了…

Sticks UVA - 307(切木棍 线性区间dp,线性dp,区间思想。)

题目大意&#xff1a;将n节木棒接成m个长度相等的木条&#xff0c;要求木条的长度尽可能的短 Time limit 3000 ms OS Linux George took sticks of the same length and cut them randomly until all parts became at most 50 units long. Now he wants to return st…

消息队列,我只选RabbitMQ!

高并发架构是架构师的必修课&#xff0c;而消息队列&#xff0c;则是王冠上最闪亮的那颗明珠&#xff01;能否驾驭消息队列这款高并发神器&#xff0c;亦成为架构师的试金石。作为专注.NET领域十多年的老架构师&#xff0c;下面从队列本质、技术选型、实战应用三个方面&#xf…

python比较三个数_python经典练习题(三)

人生苦短&#xff0c;你需要python继续学习python第一题题目&#xff1a;输入三个整数 x,y,z&#xff0c;请把这三个数由小到大输出不借助sortnum1 int(input("请输入第一个数"))num2 int(input("请输入第二个数"))num3 int(input("请输入第三个数&qu…

[PAT乙级]1002 写出这个数

读入一个正整数 n&#xff0c;计算其各位数字之和&#xff0c;用汉语拼音写出和的每一位数字。 输入格式&#xff1a; 每个测试输入包含 1 个测试用例&#xff0c;即给出自然数 n 的值。这里保证 n 小于 10​100​​。 输出格式&#xff1a; 在一行内输出 n 的各位数字之和的…

ROADS POJ - 1724(限制条件的最短路)【邻接表+深搜】

思路&#xff1a;先说下题意&#xff0c;题意第一行给了一个k,代表你有k的钱数&#xff0c;下一行有一个n,代表n个点&#xff0c;然后一个m&#xff0c;代表m条边&#xff0c;然后接下来m行,每行有四个数&#xff0c;分别代表起点、终点、路径长度和要花费的钱数&#xff0c;题…

使用Jexus 容器化您的 Blazor 应用程序

在本文中&#xff0c;我们将介绍如何将 Blazor 应用程序放入Jexus 容器以进行开发和部署。我们将使用 .NET Core CLI&#xff0c;因此无论平台如何&#xff0c;使用的命令都将是相同的。Blazor 托管模型Blazor 有两个托管模型&#xff0c;它们的要求不同&#xff0c;本文主要基…

mysql中临时修改参数用什么关键字_postgresql 中的参数查看和修改方式

1.查看参数文件的位置使用show 命令查看,比较常用的show config_file.此还可以查看pg_settings数据字典.test# show config_file;config_file------------------------------/data/pgdata/postgresql.conf(1 row)test# show hba_filetest-# ;hba_file-------------------------…

[PAT乙级]1004 成绩排名

读入 n&#xff08;>0&#xff09;名学生的姓名、学号、成绩&#xff0c;分别输出成绩最高和成绩最低学生的姓名和学号。 输入格式&#xff1a; 每个测试输入包含 1 个测试用例&#xff0c;格式为 第 1 行&#xff1a;正整数 n 第 2 行&#xff1a;第 1 个学生的姓名 学号…

圆桌会议 HDU - 1214(规律+模拟队列)

Time limit 1000 ms Memory limit 32768 kB OS Windows Source 杭电ACM省赛集训队选拔赛之热身赛 HDU ACM集训队的队员在暑假集训时经常要讨论自己在做题中遇到的问题.每当面临自己解决不了的问题时,他们就会围坐在一张圆形的桌子旁进行交流,经过大家的讨论…

【A】 Natasha3.0 引擎亮给你,请你来折腾

文章转载授权级别&#xff1a;A一 、 引言Natasha 距离上个 2. 版本大概有1个月了&#xff0c;在4月份里我把模板与引擎进行了重构&#xff0c;旨在更抽象、规范、合理&#xff0c;方便其他人参与开源、定制。接下来我将从 引擎的结构 、类库的使用及新热的 Source Generators …

linux ps mysql_linux系统中ps指令使用详解

在linux系统作为和unix和ubuntu相同的系统&#xff0c;ps指令经常被用到查看程序进程的状态&#xff0c;但是这个指令具体怎么用您会吗&#xff1f;本文就以centos为例&#xff0c;结合项目中服务器的实际应用&#xff0c;给大家讲解下ps指令的用法。一、参数a——显示现行终端…

ASP.NET Core在CentOS上的最小化部署实践

引言本文从Linux小白的视角&#xff0c; 在CentOS服务器上搭建一个Nginx-Powered AspNet Core Web准生产应用。在开始之前&#xff0c;我们还是重温一下部署原理&#xff0c;正如你所常见的.Net Core 部署图&#xff1a;在Linux上部署.Net Core App最好的方式是使用Kestrel 服务…

Pearls POJ - 1260(区间记忆化搜索)

题意&#xff1a; n件物品&#xff0c;给出数量和价格&#xff0c;&#xff08;注意数量和价格都是升序给出的这个是能DP的关键&#xff09;&#xff0c;要买掉所以商品 对于每类物品&#xff0c;所需要的价格是(a[i]10)*p[i] &#xff0c;即要多买10件&#xff0c;也可以把价格…

[PAT乙级]1006 换个格式输出整数

让我们用字母 B 来表示“百”、字母 S 表示“十”&#xff0c;用 12…n 来表示不为零的个位数字 n&#xff08;<10&#xff09;&#xff0c;换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234&#xff0c;因为它有 2 个“百”、3 个“十”、以及个…

bigdecimal 平均数_MapReduce实例-必须用Combine--求平均数

本身求平均数很简单的&#xff0c;必须用到combine的话我在两个地方废了很多时间&#xff0c;一是combine的输入不仅仅是map的输出&#xff0c;还有可能是combine的输出&#xff0c;所以对value的处理得分两种情况吧&#xff1b;二是结果要保留4位有效数字。。。噗&#xff0c;…

面试官:你不懂六大设计原则,回去等通知吧!

一、前言不知道大家是否有这样的体会&#xff0c;就是在学习设计模式的时候&#xff0c;看了很多书籍&#xff0c;也照着很多示例把每个模式挨个敲了几遍&#xff0c;但过了一段时间后&#xff0c;就会忘了一大半。或者有的朋友尝试在业务编码中使用&#xff0c;却越用越复杂&a…

Dollar Dayz POJ - 3181(动态规划+大数高低位分离输出)

题意&#xff1a;就是给出二个数N&#xff0c;和k&#xff0c;有1~k种钱币&#xff0c;每种都 是无限个&#xff0c;用这些种类的钱币可以组合成总钱N有多少种方式。 解题&#xff1a;这就是一个完全背包&#xff0c;把N看成容量&#xff0c;钱币的类型值为 花费和价值。与记录…