투표 (큰 입력)

A 지지자 N명과 B 지지자 M명이 무작위 순서로 도착할 때, 매 투표 직후 A가 앞서 있을 확률을 구한다.

보통5조합론확률수학동적 계획법아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

어떤 선거에 후보 A와 B 두 명만 나섰다. 여론 조사 결과로 A를 지지하는 유권자가 정확히 NN명, B를 지지하는 유권자가 정확히 MM명이라는 사실을 이미 알고 있다. NNMM보다 크므로 A가 이긴다.

유권자는 한 명씩 차례로 투표소에 온다. 오는 순서는 가능한 (N+M)!(N + M)!가지 순서 중에서 균등한 확률로 정해진다. 한 명이 투표할 때마다 개표원이 중간 집계를 갱신하고 지금까지 어느 후보가 앞서는지 적어 둔다. 두 후보의 득표수가 같으면 앞서는 후보는 없다고 본다.

A가 처음부터 끝까지 계속 앞설 확률, 즉 매 투표 직후마다 빠짐없이 A가 앞서 있을 확률을 구하라.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 이어서 테스트 케이스마다 한 줄에 두 정수 NNMM이 주어진다. NN은 A를 지지하는 유권자 수, MM은 B를 지지하는 유권자 수다.

제한

  • 1T1001 \le T \le 100
  • 0M<N20000 \le M < N \le 2000

출력

테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 매 투표 직후마다 A가 앞서 있을 확률이다.

yy는 소수점 아래 자리를 정확히 여덟 개 써서 출력한다. 정확한 값이 소수점 아래 여덟째 자리까지 딱 떨어지지 않으면 여덟째 자리에서 반올림하고, 남은 부분이 정확히 한가운데에 놓이면 큰 쪽으로 올린다. 예를 들어 확률이 1/512=0.0019531251/512 = 0.001953125이면 0.00195313을 출력한다.

설명

N=2N = 2, M=1M = 1인 경우를 보자. 유권자는 셋이고 그중 둘이 A를 지지한다. 이 둘을 A1, A2라고 하면 투표 순서는 A1 A2 B, A2 A1 B, A1 B A2, A2 B A1, B A1 A2, B A2 A1의 여섯 가지다. 이 가운데 매 투표 직후마다 A가 앞서는 순서는 앞의 두 가지뿐이다. 순서가 A1 B A2이면 첫 투표 뒤에는 A가 앞서지만 두 번째 투표 뒤에는 동점이 된다. 따라서 답은 2/6=0.333333332/6 = 0.33333333이다.

N=1N = 1, M=0M = 0인 경우에는 유권자가 한 명뿐이고 그 유권자가 A를 지지한다. 가능한 순서는 하나뿐이며, 그 한 번의 투표 뒤에 A가 앞선다.