#include <bits/stdc++.h>
const int N = 205;
int T, n, m, a[N][N];
int main() {
for (scanf("%d", &T); T; T--) {
scanf("%d%d", &n, &m);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &a[i][j]);
}
}
double ans = 1; //只有一个数时就为1,不可能比这还小
for (int j = 0; j < m; j++) {
double sum = 0;
for (int i = 0; i < n; i++) {
sum += a[i][j];
ans = std::max(ans, sum / a[i][j]);
}
}
printf("%.8f\n", ans);
}
return 0;
}
最大的结果就是只有一列的情况,找一列情况中最大的就可以了。
我自己做的时候以为是寻找最大子矩阵和(最大子矩阵和/矩阵最后一行的和),是我想多了😢当时超时实在没有办法改了