#include<bits/stdc++.h>
#define il inline
#define db double
const int N=105;

int n,tot; char g[N][N]; bool ok[N]; db ans;

il void dfs(int u)
{
	ok[u]=1,tot++; int v;
	for (v=1; v<=n; v++) if (!ok[v]&&g[v][u]>48) dfs(v);
}

int main()
{
	scanf("%d",&n); int i;
	for (i=1; i<=n; i++) scanf("%s",g[i]+1); 
	
	for (i=1; i<=n; i++) memset(ok,0,n+1),tot=0,dfs(i),ans+=1.0/tot;
	printf("%.12lf\n",ans);
	
	return 0;
}
#include<bits/stdc++.h>

using namespace std;

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	int n;
	cin >> n;
	int a[n];
	map<int,int> m;
	for(int i=0;i<n;i++)
	{
		cin >> a[i];
		m[a[i]]++;
	}
	long long ans=0;
	for(int i=0;i<n;i++)
	{
		ans+=(n-i-1)-(m[a[i]]-1);
		m[a[i]]--;
	}
	cout << ans;
	return 0;
}