代码:
#include<bits/stdc++.h>
//#define int long long
//#pragma GCC optimize(2,"Ofast","inline")
using namespace std;
int T,n,a[105][105],cnt,sum,t;
double cnt1,sum1,cnt2,sum2;
char x;
int ans1,ans2,ans3;
double f,f1,f2,f3;
signed main(){
scanf("%d",&T);
t=T;
while(T--){
scanf("%d",&n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
{
cin>>x;
if(x!='.') a[i][j]=(x-'0'+1);
}
}
printf("Case #%d:\n",t-T);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i==j) continue;
if(a[i][j]==0) continue;
cnt++,sum+=a[i][j]-1;
for(int k=1;k<=n;k++){
if(k!=j&&a[j][k]!=0) cnt1++,sum1+=a[j][k]-1;
for(int i1=1;i1<=n;i1++)
if(k!=i1&&a[k][i1]!=0) cnt2++,sum2+=a[k][i1]-1;
f1+=double(sum2/cnt2)*1.0,sum2=0,cnt2=0,ans1++;
}
f2+=double(sum1/cnt1)*1.0,sum1=0,cnt1=0,ans2++;
}
f1=double(f1/ans1)*0.25,f2=double(f2/ans2)*0.25;
f=double(sum/cnt)*1.0*0.5+f1+f2,sum=0,cnt=0;
cout<<double(f)<<'\n';
f=0.0;
}
}
}