#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
int dp[10005],i,o,n,tot,now,zx[10005],fa[10005],j,head[10005],e[10005],next[10005],V[10005],A[10005],B[10005],L[10005],R[10005],Time,Q[10005],sum;
int vv[10005],z;
bool v[10005];
double X,Y,Z,ans;
void add(int a,int b,int c)
{
    e[a]=c;
    next[a]=head[b];
    head[b]=a;
}
void dfs(int x,int y)
{
    dp[x]=y;
    int now=head[x];
    while (now!=0)
    {
        if (!v[e[now]]) {v[e[now]]=true; V[now]=1; dfs(e[now],y+1);fa[e[now]]=x;}
        now=next[now];
    }
}
void DFS(int z,int x,int y)
{
    L[x]=++Time; dp[x]=y; zx[x]=z;
    int now=head[x];
    while (now!=0)
    {
        if (!v[e[now]]) {v[e[now]]=true; DFS(z,e[now],y+1);}
        now=next[now];
    }
    R[x]=Time;
}
void dfs2(int x,int y)
{
    ans+=1/(y+0.0);
    int now=head[x];
    while (now!=0)
    {
        if (vv[e[now]]!=Time && (!Q[e[now]] || e[now]==z))
        {
            vv[e[now]]=Time;
            dfs2(e[now],y+1);
        }
        now=next[now];
    }
}
int main()
{
    scanf("%d",&n);
    for (i=1; i<=n; i++)
    {
        scanf("%d%d",&A[i],&B[i]);
        A[i]++; B[i]++;
        add(++o,A[i],B[i]);
        add(++o,B[i],A[i]);
    }
    for (i=1; i<=n; i++) v[i]=false;
    v[1]=true;
    dfs(1,1);
    for (i=1; i<=n; i++) v[i]=false;
    for (i=1; i<=n; i++) if (!V[i*2-1] && !V[i*2])
    {
        if (dp[A[i]]>dp[B[i]]) swap(A[i],B[i]);
        now=B[i];
        while (now!=A[i]) {Q[now]=++tot; v[now]=true; now=fa[now];}
        v[now]=true;  Q[now]=++tot;
        sum=dp[B[i]]-dp[A[i]]+1;break;
    }
    for (i=1; i<=n; i++) if (Q[i])DFS(i,i,0);
    for (i=1; i<=n; i++)
    {
        z=zx[i];
        Time++; vv[i]=Time;
        dfs2(i,1);
      for (j=1; j<=n; j++)
      {
        if (zx[i]==zx[j]); else
          {
              cout<<i<<' '<<j<<endl;
              X=dp[i]+dp[j]+1;
              Y=abs(Q[zx[i]]-Q[zx[j]])-1;
              Z=sum-Y-2;
              ans+=1/(X+Y+1.0)+1/(X+Z+1.0)-1/(X+Y+Z+1.0);
          }
      }
    }
    printf("%.10f\n",ans);
    return 0;
}
