【DP-最优子矩阵问题】
来源:互联网 发布:如何让淘宝网接入处理 编辑:程序博客网 时间:2024/05/16 11:22
最大加权矩形
题目描述:
给定一个正整数n( n<=100),然后输入一个N*N矩阵。求矩阵中最大加权矩形,即矩阵的每一个元素都有一权值,权值定义在整数集上。从中找一矩形,矩形大小无限制,是其中包含的所有元素的和最大。矩阵的每个元素属于[-127,127]
例:
0 –2 –7 0 在左下角: 9 2
9 2 –6 2 -4 1
-4 1 –4 1 -1 8
-1 8 0 –2 和为15
输入:
第一行:n,接下来是n行n列的矩阵。
输出:
最大矩形(子矩阵)的和。
样例输入:
4
0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2
样例输出:
15
==================================
==========================
var n:longint; map:array[1..100,1..100]of longint; f,sum1:array[0..100]of longint; sum:array[0..100,0..100]of longint;procedure init;begin assign(input,'a.in'); assign(output,'a.out'); reset(input); rewrite(output);end;procedure terminate;begin close(input); close(output); halt;end;function max(a,b:longint):longint;begin if a>b then exit(a); exit(b);end;procedure main;var i,j:longint; a,b,c,d:longint; t:longint; ans:longint; min:longint;begin readln(n); fillchar(sum,sizeof(sum),0); for i:=1 to n do for j:=1 to n do begin read(map[i,j]); sum[i,j]:=sum[i,j-1]+map[i,j]; //将每一行压为一个点.. end; ans:=-maxlongint; for b:=1 to n do for d:=b to n do begin fillchar(sum1,sizeof(sum1),0); for a:=1 to n do begin sum1[a]:=max(sum1[a-1]+sum[a,d]-sum[a,b-1],sum[a,d]-sum[a,b-1]); if sum1[a]>ans then ans:=sum1[a]; end; end; writeln(ans);end;begin init; main; terminate;end.
- 【DP-最优子矩阵问题】
- 最优子矩阵问题
- 二维DP的最优子结构问题
- 最大子矩阵问题(dp)
- 最大子矩阵问题<DP>
- dp 最优矩阵乘法
- 矩阵图求最优最大值问题(简单dp)
- poj1141根据不同规模构造最优子问题求解DP
- dp最优矩阵相乘poj1651
- dp解决最大子矩阵问题
- 最优子序列问题
- 【dp】最优时间表问题
- 矩阵最优连乘问题
- 最优矩阵连乘问题
- 最大子矩阵 (DP)
- 最大子矩阵 DP
- 区间DP-最优矩阵链乘
- 最优矩阵链乘(经典DP)
- 简单介绍Fedora 8飞信安装及解压
- Hadoop环境搭建——单节点篇
- 自定义 Windows Presentation Foundation 的控件---官方文档
- C之*星号粗浅理解
- 关于Portal的一些代码
- 【DP-最优子矩阵问题】
- 解决java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket这个异常
- boa移植到android平台上
- 给编程初学者的良言警句
- 写在冬日这一天
- kalman 滤波 演示与opencv代码
- JS TAB效果126邮箱(同一页面可多次使用)代码
- Subversion和TortoiseSVN 实践篇(windows环境)
- vs2008+ddkwizard+wdk基于xp环境 windows内核编程环境配置