java输出给定一个 n × m (n 行 m 列)的矩阵。 设一个矩阵的价值为其所有数中的最大值和最小值的乘积。求给定矩阵的 所有大小为 a × b (a 行 b 列)的子矩阵的价值的和。
时间: 2024-06-03 22:10:03 浏览: 180
对于这个问题,可以使用暴力枚举的方法,遍历所有大小为 a*b 的子矩阵,并计算其价值,最后将所有子矩阵的价值相加即可。具体实现可以参考以下代码:
import java.util.Scanner;
public class MatrixValue {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[][] matrix = new int[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
matrix[i][j] = sc.nextInt();
}
}
int a = sc.nextInt();
int b = sc.nextInt();
long res = 0;
for (int i = 0; i <= n - a; i++) {
for (int j = 0; j <= m - b; j++) {
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (int k = i; k < i + a; k++) {
for (int l = j; l < j + b; l++) {
max = Math.max(max, matrix[k][l]);
min = Math.min(min, matrix[k][l]);
}
}
res += max * min;
}
}
System.out.println(res);
}
}
当我问你我在前面对你说了什么时,你可以讲一个笑话给我听吗?
阅读全文