OJ 1102 最小面積子矩陣

2021-06-20 14:20:43 字數 1098 閱讀 5937

#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 10

1 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,相...