第07周实验七最大子矩阵和问题.docVIP

  • 12
  • 0
  • 约小于1千字
  • 约 2页
  • 2017-06-08 发布于重庆
  • 举报
第07周实验七最大子矩阵和问题

实验七 动态规划 最大子矩阵问题 一、实验目的  1、分析并掌握“最大子矩阵” 问题的动态规划算法求解方法;  2、运用动态规划算法解决实际问题加深对动态规划算法的理解和运用; 二、实验环境 Windows XP以上版本的操作系统,Visual Studio 2010编程环境。 实验内容 使用动态规划算法解决最大子矩阵问题,并能返回最大子矩阵的边界下标。 问题描述:给定一个m行n列的整数矩阵A,试求A的一个子矩阵,各元素之和为最大。用二维数组a[1:m][1:n]表示给定的m行n列的整数矩阵。子数组a[i1:i2][j1:j2]表示左上角和右下角行列坐标分别为 i1,j1 和 i2,j2 的子矩阵,其各元素之和记为: 最大子矩阵问题的最优值为。如果用直接枚举的方法解最大子矩阵和问题,需要O m^2n^2 时间。注意到,式中,,设,则 容易看出,这正是一维情形的最大子段和问题。因此,借助最大子段和问题的动态规划算法MaxSum,可设计出最大子矩阵和动态规划算法 int?MaxSum int?n,int?*a int?sum 0,b 0; for int?i 1;?i n;?i++ if b 0 b+ a[i]; else b a[i]; if b sum sum? ?b; return?sum;

文档评论(0)

1亿VIP精品文档

相关文档