最大全零子矩陣

2021-07-23 09:51:23 字數 1002 閱讀 2243

【題目描述】

在乙個0,1方陣中找出其中最大的全0子矩陣,所謂最大是指0的個數最多。

【輸入描述】

輸入第一行為整數n,其中1<=n<=2000,為方陣的大小,緊接著n行每行均有n個0或1,相鄰兩數間嚴格用乙個空格隔開。

【輸出描述】

輸出僅一行包含乙個整數表示要求的最大的全零子矩陣中零的個數。

【樣例輸入】 5

0 1 0 1 0

0 0 0 0 0

0 0 0 0 1

1 0 0 0 0

0 1 0 0 0

【樣例輸出】 9

源**:

#include

int n,ans(0),i[2001][2001],left[2001][2001],right[2001][2001],f[2001][2001]=;

intmain()

right[a][n]=i[a][n]==1?n-1:n; //

邊界。

for (int b=n-1;b>0;b--)

if (!i[a][b]) //

初始化右端。

right[a][b]=right[a][b+1

];

else

right[a][b]=b-1

; }

for (int a=1;a<=n;a++) //

邊界。 f[1][a]=i[1][a]==1?0:1

;

for (int a=2;a<=n;a++)

for (int b=1;b<=n;b++)

if (!i[a][b])

int t=(right[a][b]-left[a][b]+1)*f[a][b]; //

求最大值。

if (t>ans)

ans=t;

}printf("%d

",ans);

return0;

}

4 零子陣列

題目 對於長度為n的陣列a,求連續子陣列的和最接近0的值。如 陣列a 1,2,3,10,4,7,2,5 它是所有子陣列中,和最接近0的是哪個?演算法流程 申請比a長1的空間sum 1,0,n 1 sum i 是a的前i項和。定義sum 1 0。顯然有 a的i到j項和 sum j sum i 1 對s...

最大全1子矩陣

題目描述 在乙個m n的矩陣中,所有的元素只有0和1,從這個矩陣中找出乙個面積最大的全1子矩陣,所謂最大是指元素1的個數最多。輸入 輸入可能包含多個測試樣例。對於每個測試案例,輸入的第一行是兩個整數m n 1 m n 1000 代表將要輸入的矩陣的大小。矩陣共有m行,每行有n個整數,分別是0或1,相...

最大全1子矩陣

給出1個m n的矩陣m1,裡面的元素只有0或1,找出m1的乙個子矩陣m2,m2中的元素只有1,並且m2的面積是最大的。輸出m2的面積。input 第1行 2個數m,n中間用空格分隔 2 m,n 100 第2 n 1行 每行m個數,中間用空格分隔,均為0或1。output 輸出最大全是1的子矩陣的面積...