Maximum Sum

原创 2016年08月28日 15:56:56
链接:http://acm.timus.ru/problem.aspx?space=1&num=1146
题目:
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 sub-rectangle 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 and has the sum of 15.
题意:给一个数字矩阵,用一个矩形框几个数字,求这几个数字的和的最大值为多少。
分析:这道题用到了很巧妙的前缀和用法+尺取法。用二维数组存数据,存的是本列从头到这一项的和。之后枚举矩形的左右两边,尺取上下两边得到最大值。
题解:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <cstring>
#include <functional>
#include <cmath>
using namespace std;


int s[110][110];
int main()
{
	//freopen("in.txt", "r", stdin);
	int n;
	while (~scanf("%d", &n))
	{
		for (int i = 0; i < n; i++)
			for (int j = 0; j < n; j++)
			{
				scanf("%d", &s[i][j]);
				if(j>=1)
					s[i][j] += s[i][j - 1];
			}
		int ans = -10000000;
		
		for (int i = 0; i < n; i++)
			for (int j = i; j < n; j++)
				for (int k = 0, temp = 0; k < n;k++)
				{
					temp += s[k][j] - s[k][i - 1];
					ans = (ans > temp) ? ans : temp;
					if (temp < 0)temp = 0;
				}
		printf("%d\n", ans);
	}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

Maximum sum-动态规划

A - Maximum sum Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Sub...
  • qq_18661257
  • qq_18661257
  • 2015年07月25日 17:14
  • 953

poj2479Maximum sum

刚刚开始一直错 一直错 原来是i+1已经大于n了。。。本以为是0没关系的,看来不能想当然#include #include #include int main() { int i,t,n,m...
  • su20145104009
  • su20145104009
  • 2015年03月26日 20:42
  • 1453

1007. Maximum Subsequence Sum (25) -- 动态规划

1007. Maximum Subsequence Sum (25)题目地址Given a sequence of K integers { N1, N2, …, NK }. A continuous...
  • qq_26437925
  • qq_26437925
  • 2015年08月13日 21:11
  • 697

算法笔记-1-最大子列和-Maximum Subsequence Sum

题目内容: Given a sequence of KK integers {N1,N2,...,NK N_1, N_2, ..., N_K}. A continuous subsequence...
  • plank_root
  • plank_root
  • 2016年09月18日 22:58
  • 1539

POJ2.6 1481 Maximum sum

POJ2.6 1481 Maximum sum
  • leizhehan
  • leizhehan
  • 2016年11月07日 18:05
  • 388

LeetCode689. Maximum Sum of 3 Non-Overlapping Subarrays

LeetCode689. Maximum Sum of 3 Non-Overlapping Subarrays
  • Yaokai_AssultMaster
  • Yaokai_AssultMaster
  • 2017年10月16日 13:27
  • 1159

【LeetCode】Binary Tree Maximum Path Sum 解题报告

【题目】 Given a binary tree, find the maximum path sum. The path may start and end at any node ...
  • ljiabin
  • ljiabin
  • 2015年01月22日 16:15
  • 3255

LWC 52:689. Maximum Sum of 3 Non-Overlapping Subarrays

LWC 52:689. Maximum Sum of 3 Non-Overlapping Subarrays传送门:689. Maximum Sum of 3 Non-Overlapping Suba...
  • u014688145
  • u014688145
  • 2017年10月03日 09:46
  • 531

poj2479 - Maximum sum

想看更多的解题报告: http://blog.csdn.net/wangjian8006/article/details/7870410                              ...
  • wangjian8006
  • wangjian8006
  • 2012年05月21日 18:48
  • 4352

POJ2479&OpenJudge1481 Maximum sum

今天,凑巧做了一个DP题,A了后发现我自己写的感觉不比网上的其他博客里写的差。而且那些大都没有写思路。(可能是因为太简单了他们觉得不用写了吧!)所以,我就自己写一篇题解了。...
  • ccutyear
  • ccutyear
  • 2017年04月18日 21:14
  • 219
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Maximum Sum
举报原因:
原因补充:

(最多只允许输入30个字)