码迷,mamicode.com
首页 > 其他好文 > 详细

DP——To the Max

时间:2015-03-28 21:34:43      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

Description

Given a two-dimensional array of positive and negative integers, a sub-rectangle is any contiguous sub-array of size 1 x 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 x 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.

Sample Input

4
0 -2 -7 0 9 2 -6 2
-4 1 -4 1 -1
8 0 -2

Sample Output

15 

HINT

 大意:用一个数组表示从i行到j行的第k个元素的值的和。
技术分享
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
    int a[150][150];
    int n,m;
    scanf("%d",&n);
    for(int i = 1; i <= n ;i++){
        for(int j = 1; j <= n ;j++){
         scanf("%d",&m);
         a[i][j] = a[i-1][j] + m;
        }
    }

    int max1 = 0;
    int sum;
    for(int i = 1; i <= n ;i++){
        for(int j = i+1 ; j<= n ;j++){
            int sum = 0;
            for(int k = 1; k <= n;k++){
              int temp = a[j][k] - a[i][k];
               sum += temp;
              if(sum < 0) sum = 0;
              if(sum  > max1) max1 = sum;
            }
        }
    }
    printf("%d",max1);
   return 0;
}
View Code

 

DP——To the Max

标签:

原文地址:http://www.cnblogs.com/zero-begin/p/4374794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!