#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=105;
int num[maxn][maxn];
int n,m;
ll cal(int x, int y) {
ll res=0;
int c=num[x][y],L=1,R=m;
for (int i=x;i>=1;i--) {
if(i<x&&num[i][y]==c) break;
int l=y,r=y;
for(int j=y-1;j>=max(1,L);j--) {
if(num[i][j]==c) break;
l=j;
}
L=max(L,l);
if(i==x){
res+=(ll)(n-x+1LL)*(y-L+1LL)*(R-y+1LL);
continue;
}
for(int j=y+1;j<=min(m,R);j++) {
if(num[i][j]==c) break;
r=j;
}
R=min(R,r);
res+=(ll)(n-x+1LL)*(y-L+1LL)*(R-y+1LL);
}
//printf("(%d, %d) %I64d\n", x, y, res);
return res;
}
int main(int argc, char const *argv[])
{
int T;
scanf("%d",&T);
while(T--){
scanf("%d %d",&n,&m);
ll cnt=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cnt+=(i*j);
scanf("%d",&num[i][j]);
}
}
ll kkk=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
kkk+=cal(i,j);
}
}
printf("%.9f\n",kkk*1.0/cnt);
}
return 0;
}
2017 多校训练第二场 HDU 6052 To my boyfriend
最新推荐文章于 2017-08-24 23:24:00 发布
