题意
一个矩阵的底面积定义为最后一行的数的和,重量定义为所有数的和,给一个正整数矩阵,找一个 “压强” 最大的可非连续子矩阵。
假如我们对于每列都进行这样的计算:从第一行到终止行(任一行)的数
之和除以终止行的数,那么我们可以得到以每一列的某些行作为矩阵的最
大值,如果以多列作为矩阵,合并后的值一定小于或等于合并前的值,所
以可以,用一个二维数组,来保存该点上方所有点(包括该点)的和,因为
分母不会受到分子的影响,所以要全都加上。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
ll T,n,m,a[205][205];
cin>>T;
while(T--)
{
cin>>n>>m;
double s=0;
for(ll i=0; i<n; i++)
{
for(ll j=0; j<m; j++)
{
cin>>a[i][j];
}
}
for(ll i=0;i<m;i++)
{
double t=0;
for(ll j=0;j<n;j++)
{
t=t+a[j][i];
s=max(s,t*1.0/a[j][i]);
}
}
printf("%.8lf\n",s);
}
return 0;
}