主题:矩阵啊矩阵!!!
chenzhong
[专家分:250] 发布于 2005-08-18 20:49:00
输入一个M*N的矩阵,从中任意挖出一个子矩阵,使其所有数字之和最大.(1<=M,N<=100).矩阵中每个数字为在-128--127之间的整数.
大家帮忙编出来[em1]我专门+++++分[em4]
回复列表 (共4个回复)
沙发
林记 [专家分:1680] 发布于 2005-08-21 20:26:00
我老师说过是DTGH的
板凳
lzl1403 [专家分:1670] 发布于 2005-08-22 16:15:00
先用动态规划循环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 楼
林记 [专家分:1680] 发布于 2005-08-22 16:20:00
哦,不过我们上次做的好象只有两重循环的呀
4 楼
lzl1403 [专家分:1670] 发布于 2005-08-23 00:11:00
你试一下怎样可以只用两重循环……
不过可以只用二维数组,数组a[i,j]保存(1,1)至(i,j)的矩阵的数的和,其它的不用保存,只需记录最值就行了。
我来回复