组卷题库 > 高中信息技术试卷库
试题详情
求最大连续子矩阵和。给出一个矩阵,序列元素有正整数、0、负整数,在矩阵中限定一块区域,并要求找到该限定区域内的一个子矩阵,使得这个子矩阵与限定区域同宽但可能不同高,且包含的所有元素之和为限定区域矩阵中最大值,在和最大的前提下还要求该子矩阵包含的元素个数最多。

算法描述如下:

1)从第一行开始向下进行累加,累加和若大于之前的最大和,则记录此时的最大和及结束位置;

2)若累加和等于之前的最大和,但元素个数大于之前的最大和的元素个数,则记录此连续子矩阵的结束位置;

3)若累加和小于0,则重新开始记录;

4)若有符合条件的多个连续子矩阵,则输出最先找到的子矩阵。

    小俞编写了一个实现该功能的VB程序,窗体加载时生成m*n个序列数据,依次存放在数组a,并显示在列表框List1中,在文本框Text1中输入该矩阵限定区域的左上角位置,在文本框Text2中输入右下角位置,单击“计算”按钮Command1后,找出连续和最大的子矩阵,在标签Label3上显示最大连续子矩阵和,在Label 4上显示该连续子矩阵的元素个数,在Label 5上显示该连续子矩阵开始与结束位置。程序运行界面如图所示。

知识点
参考答案
采纳过本试题的试卷
教育网站链接