1. 程式人生 > 實用技巧 >2020牛客暑期多校訓練營(第六場 )C Combination of Physics and Maths(思維)

2020牛客暑期多校訓練營(第六場 )C Combination of Physics and Maths(思維)

地址: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); } }