해결한 사람
0
명
정답률
0.00
%
시간 제한
2000
ms
메모리 제한
245
MB
세 정수 k, pa, pb가 주어진다.
다음 알고리즘으로 수열을 구성한다. 처음에는 빈 수열로 시작한다. 매초 다음을 수행한다. pa / (pa + pb)의 확률로 수열의 끝에 'a'를 추가한다. 그렇지 않으면 (pb / (pa + pb))의 확률로 수열의 끝에 'b'를 추가한다.
'ab'를 이루는 부분 수열이 적어도 k개가 되는 즉시 중단한다. 만들어진 수열에서 'ab'가 부분 수열이 되는 횟수의 기댓값을 구한다. 이 값은 P / Q로 나타낼 수 있음이 증명될 수 있으며, 여기서 P and Q은 서로소인 정수들이고,
이다.
의 값을 출력한다.
첫 번째 줄에 세 정수 k, pa, pb (1 ≤ k ≤ 1 000, 1 ≤ pa, pb ≤ 1 000 000)가 주어진다.
문제의 답인 정수 하나를 출력한다.
1 1 1
2
3 1 4
370000006
첫 번째 예제에서는 'ab' 부분 수열을 적어도 한 번 얻을 때까지 수열의 끝에 계속 문자를 추가한다. 예를 들어 1/4의 확률로 수열 'ab'를, 1/16의 확률로 'bbab'를, 1/8의 확률로 'aab'를 얻는다. 접두사 'aab'를 얻은 즉시 알고리즘을 중단했을 것이므로 'aabab'와 같은 수열로 끝나는 것은 불가능하다는 점에 유의하라.
모든 유효한 수열에서 'ab'가 나타나는 횟수의 기댓값은 2이다.
두 번째 예제의 답은
와 같다.