만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

투표 (큰 입력)

시간 제한5초메모리 제한512 MB

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

보통10점 중 5점

유형
조합론, 확률, 수학, 동적 계획법
정답자
아직 제출이 없습니다

문제

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

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

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

입력

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

제한

  • 1≤T≤1001 \le T \le 100
  • 0≤M<N≤20000 \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가 앞선다.

예제4

  1. 예제 1

    입력
    2
    2 1
    1 0
    
    예상 출력
    Case #1: 0.33333333
    Case #2: 1.00000000
    
  2. 예제 2

    입력
    1
    1 0
    
    예상 출력
    Case #1: 1.00000000
    
  3. 예제 3

    입력
    1
    2000 1999
    
    예상 출력
    Case #1: 0.00025006
    
  4. 예제 4

    입력
    1
    2000 0
    
    예상 출력
    Case #1: 1.00000000