정점 N개짜리 트리에서 서로 다른 두 정점을 균일하게 무작위로 고를 때, 두 정점 사이 거리가 소수일 확률을 구한다.
NNN개의 정점으로 이루어진 트리가 주어진다. 정점에는 1번부터 NNN번까지 번호가 붙어 있다. 두 정점 사이의 거리는 두 정점을 잇는 경로에 놓인 간선의 개수다.
서로 다른 두 정점을 균일한 확률로 고른다. 즉 서로 다른 두 정점으로 이루어진 (N2)\binom{N}{2}(2N)개의 쌍 중 하나가 같은 확률로 뽑힌다. 이때 고른 두 정점 사이의 거리가 소수일 확률을 구하는 프로그램을 작성하시오.
첫째 줄에 정점의 개수 NNN이 주어진다. (2≤N≤500002 \le N \le 500002≤N≤50000)
다음 N−1N-1N−1개 줄에는 간선으로 이어진 두 정점의 번호 uuu와 vvv가 공백을 사이에 두고 주어진다. (1≤u,v≤N1 \le u, v \le N1≤u,v≤N, u≠vu \ne vu=v)
주어지는 그래프는 항상 트리다.
고른 두 정점 사이의 거리가 소수일 확률을 소수점 아래 열째 자리까지 출력한다. 소수점 아래 열한째 자리에서 반올림하고, 끝에 오는 0도 생략하지 않는다. 예를 들어 확률이 정확히 12\frac{1}{2}21이면 0.5000000000을 출력한다.
0.5000000000