c语言:输入是一个n*m的矩阵,要求找到其中最大的全0字矩阵。怎么算?

来源:百度知道 编辑:UC知道 时间:2024/05/23 22:17:04
全零子矩阵
看不太懂啊。我觉着楼下两位算法好像有问题啊。
能不能详细解释下?

这个题其实就是最大子矩阵,只不过把0的权设为1,其他的权设为负无穷,这样求出来的肯定是最大的全是0的矩阵,仔细看一下我得做法,用的是动态规划。

#include <cstdio>

const int Max_Int = 0xfffffff;

int map[ 301 ][ 301 ], opt[ 301 ], n, m, maxn;

void init( )
{
int i, j, t;
scanf("%d%d", &n, &m);
for ( i = 0; i < n; i++ )
for ( j = 0; j < m; j++ )
{
scanf("%d", &t);
if ( t == 0 )
map[ i ][ j ] = 1;
else
map[ i ][ j ] = -Max_Int;
}
maxn = 0;
}

void work( )
{
int i, j, k, t;
for ( i = 0; i < n; i++ )
for ( j = i; j < n; j++ )
{
t = 0;
for ( k = 0; k < m; k++ )
{