#include const int size = 110;
int mat[size][size];
int sum[size][size];
int tok[size];
int n, m, k;
bool check(int len)
int main()
int ans = -1;
for (int len = 1; len <= n; len ++)
for (int i = 1; i + len - 1 <= n; i ++)
if (tok[m] < k)
continue;
// printf("len = %d, %d!!\n", len, tok[m]);
//列舉len,二分mid
int lf = 1, rt = m + 1;
int mid;
while (lf < rt)
if (check(mid))
else lf = mid + 1;}}
printf("%d\n", ans);
}return 0;
}
這題沒做……
思路是:
1.dp+二分查詢,二維轉化為一維求連續子陣列最大值
2.兩個方向上遍歷,計算每個點與左上角的點的和,再遍歷計算任意兩點間矩陣的部分和
題目描述:乙個n*m的矩陣,找出這個矩陣中所有元素的和不小於k的面積最小的子矩陣(矩陣中元素個數為矩陣面積)
輸入:每個案例第一行三個正整數n,m<=100,表示矩陣大小,和乙個整數k
接下來n行,每行m個數,表示矩陣每個元素的值
輸出:輸出最小面積的值。如果出現任意矩陣的和都小於k,直接輸出-1。
樣例輸入:
4 4 101 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
樣例輸出:
1
牛客 最小面積子矩陣
乙個n m的矩陣,找出這個矩陣中所有元素的和不小於k的面積最小的子矩陣 矩陣中元素個數為矩陣面積 每個案例第一行三個正整數 n,m 100 表示矩陣大小,和乙個整數 k接下來 n行,每行 m個數,表示矩陣每個元素的值 輸出最小面積的值。如果出現任意矩陣的和都小於 k,直接輸出 1。示例1 4 4 1...
面積最大的全1子矩陣 九度OJ 1497
題目描述 在乙個m n的矩陣中,所有的元素只有0和1,從這個矩陣中找出乙個面積最大的全1子矩陣,所謂最大是指元素1的個數最多。輸入 輸入可能包含多個測試樣例。對於每個測試案例,輸入的第一行是兩個整數m n 1 m n 1000 代表將要輸入的矩陣的大小。矩陣共有m行,每行有n個整數,分別是0或1,相...
面積最大的全1子矩陣
題目描述 在乙個m n的矩陣中,所有的元素只有0和1,從這個矩陣中找出乙個面積最大的全1子矩陣,所謂最大是指元素1的個數最多。輸入 輸入可能包含多個測試樣例。對於每個測試案例,輸入的第一行是兩個整數m n 1 m n 1000 代表將要輸入的矩陣的大小。矩陣共有m行,每行有n個整數,分別是0或1,相...