1025:To the max(DP)
来源:互联网 发布:mac什么打开exe文件 编辑:程序博客网 时间:2024/05/29 16:53
Description
Given a two-dimensional array of positive and negative integers, a sub-rectangle is any contiguous sub-array of size 1*1 or greater located within the whole array. The sum of a rectangle is the sum of all the elements in that rectangle. In this problem the sub-rectangle with the largest sum is referred to as the maximal sub-rectangle. 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 corner: 9 2 -4 1 -1 8 and has a 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 N^2 integers separated by whitespace (spaces and newlines). These are the N^2 integers of the array, presented in row-major order. That is, all numbers in the first row, left to right, then all numbers in 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
Output the sum of the maximal sub-rectangle.
40 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2
15
#include<cstdio>#include<cstring>using namespace std;const int N=105;int a[N][N];int b[N];int main (){ int r,max=0; scanf("%d",&r); memset(a,0,sizeof(a)); for(int i=1;i<=r;i++) { for(int j=1;j<=r;j++) { scanf("%d",&a[i][j]); a[i][j]+=a[i-1][j]; } } max=a[1][1]; for(int i=1;i<=r;i++)//从第i行开始到底j行。。。。转化成一维的 { for(int j=i;j<=r;j++) { memset(b,0,sizeof(b)); for(int k=1;k<=r;k++) { if(b[k-1]>=0) b[k]=b[k-1]+a[j][k]-a[i-1][k]; else b[k]=a[j][k]-a[i-1][k]; if(max<b[k]) max=b[k]; } } } printf("%d\n",max); return 0;}
0 0
- 1025:To the max(DP)
- To the Max (DP)
- poj - 1050 - To the Max(dp)
- POJ 1050 to the max(dp)
- poj 1050 To the Max (dp)
- 【POJ 1050】To the Max(dp)
- POJ 1050 To the Max(DP)
- ZOJ1074-To the Max(dp)
- DP::Poj1050 To the max
- poj1050 To the Max (dp)
- POJ1050 TO THE MAX [DP]
- 1050 To the Max DP
- poj1050 to the max (DP)
- poj1050 To the Max dp
- hdu1081 To The Max (dp)
- To The Max(dp思想)
- pku1050 To the Max DP
- HDU1081 To The Max (DP)
- VS2010 环境下链接 IVF2011 编译的 Fortran 静态库问题
- Java之 string 类型比大小
- 同步问题
- cocos2dx3.9 lua继承Layer
- Linux操作系统 (RHEL 7/CentOS 7)
- 1025:To the max(DP)
- Hibernate工作原理
- 配置Android studio 项目上传jcenter 时 gradle 报以下错误
- java网络编程
- C,C#,WebService结构体数组返回问题--谐解
- linux内核启动过程追踪
- 设置隐藏Activity,避免闪烁
- ubuntu 分辨率问题and 显卡驱动安装
- 专访DeepID发明者孙祎:关于深度学习与人脸算法的深层思考