【題目描述】
在乙個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的子矩陣的面積...