回 帖 发 新 帖 刷新版面

主题:矩阵啊矩阵!!!

输入一个M*N的矩阵,从中任意挖出一个子矩阵,使其所有数字之和最大.(1<=M,N<=100).矩阵中每个数字为在-128--127之间的整数.
大家帮忙编出来[em1]我专门+++++分[em4]

回复列表 (共4个回复)

沙发

我老师说过是DTGH的

板凳

先用动态规划循环i,j计出数组a[1,1,i,j]
(a[x1,y1,x2,y2]表示由x1行y1列到x2行y2列这个矩阵中的数字之和),
然后再循环i,j,k,l计算
a[i,j,k,l]:=a[1,1,k,l]-a[1,1,i-1,l]-a[1,1,k,j-1]+a[1,1,i-1,j-1]
在计算过程中保存值就行了

3 楼

哦,不过我们上次做的好象只有两重循环的呀

4 楼

你试一下怎样可以只用两重循环……
不过可以只用二维数组,数组a[i,j]保存(1,1)至(i,j)的矩阵的数的和,其它的不用保存,只需记录最值就行了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册