题目大意
定义矩阵压强=F/S,其中压力F=矩阵所有项之和,面积S=矩阵最后一行的所有项之和,求出最大压强的子矩阵,并输出这个压强。
思路
根据题设老老实实算就行了,因为面积由最后一行的元素和决定,所以倒过来去枚举每一列的所有子列求最大值就行了。
#include <bits/stdc++.h>
using namespace std;
int t;
double a[205][205];
int main()
{
scanf("%d", &t);
while(t--)
{
int n, m;
scanf("%d%d", &n, &m);
for(int i = 0; i < n; i++)
for(int j = 0; j < m; j++)
scanf("%lf",&a[i][j]);
double maxn = 1;
for(int j = 0; j < m; j++)
{
double sum = 0;
for(int i = 0; i < n; i++)
{
sum += a[i][j];
maxn = max(maxn, sum / a[i][j] * 1.0);
}
}
printf("%.8f\n", maxn);
}
return 0;
}