def sumdists(p): n = len(p)+1 d = [0] * n for u in range(n-2,-1,-1): d[u] = d[p[u]] + 1 children = [[] for u in range(n)] for u in range(n-1): children[p[u]].append(u) size = {} sddesc = {} sdm = {} for u in range(n): size[u] = 1 + sum(size[v] for v in children[u]) sddesc[u] = d[u] + sum(sddesc[v] for v in children[u]) sdm[u] = sddesc[u] - d[u]*size[u] sdn = [0]*n for u in range(n-2,-1,-1): sdn[u] = size[p[u]]-size[u]+sdm[p[u]]-sdm[u]-size[u] + sdn[p[u]]+n-size[p[u]] out = [0]*n for u in range(n): out[u] = sdn[u] + sdm[u] return out T = int(input()) for t in range(1,T+1): n1,n2,C = map(int,input().split()) p1 = [i-1 for i in map(int,input().split())] p2 = [i-1 for i in map(int,input().split())] out = [] n = n1+n2 np = n*(n-1)//2 sd1 = sumdists(p1) sd2 = sumdists(p2) td1 = sum(sd1)//2 td2 = sum(sd2)//2 for i in range(C): A,B = map(int,input().split()) A,B = A-1,B-1 out.append((td1 + td2 + n1*n2 + n2*sd1[A] + n1*sd2[B])/np) print(f'Case #{t}:', *out)