2020牛客暑期多校訓練營(第六場 )C Combination of Physics and Maths(思維)
阿新 • • 發佈:2020-07-29
地址:https://ac.nowcoder.com/acm/contest/5671/C
題意:
給出n*m的矩陣,求子矩陣的最大壓強:壓力F為子矩陣所有元素之和,受力面積為子矩陣最後一行的元素之和
子矩陣可以不連續
解析:
給出一個比較極端的情況:
1 100
1 100
1 1
第一列壓強為:3 第二列壓強為201
合起來為:101
水平選,只會讓結果趨於平均值,所以只需求每一列,每列的每個元素分別做為底即可。
#include<bits/stdc++.h> #include<iostream> #include<cstring> #include<string.h> #include<cmath> #include<map> using namespace std; typedef long long ll; const int maxn=2e2+20; int a[maxn][maxn]; int main() { int t; scanf("%d",&t); while(t--) { int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++)for(int j=1;j<=m;j++) scanf("%d",&a[i][j]); double sum=0; for(int i=1;i<=m;i++) { int md=0; for(int j=1;j<=n;j++) { md+=a[j][i]; sum=max(sum,md*1.0/a[j][i]); } } printf("%.8lf\n",sum); } }