매우 간단한 문제

시간 제한4초메모리 제한1024 MB

요약
깊이 H인 완전 K진 트리에서 서로 다른 두 정점을 균등하게 골랐을 때 거리의 기댓값을 1e9+7로 나눈 나머지를 구한다.
난이도

어려움10점 중 8점

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

문제

깊이가 HH인 완전 KK-진 트리에서 임의의 서로 다른 두 정점 사이의 거리의 기댓값을 계산하라.

완전 KK-진 트리란, 리프 정점(자식이 없는 정점)을 제외한 모든 정점이 KK개의 자식 정점을 지닌 트리를 의미한다.

완전 KK-진 트리에서 모든 리프 정점은 항상 루트 정점으로부터 H−1H - 1만큼 떨어져 있다.

각각의 정점은 균등한 확률으로 선택된다.

입력

첫 번째 줄에 정수 QQ가 주어진다.

두 번째 줄부터 QQ개의 줄 중 ii번째 줄에 두 정수 H_iH\_i와 K_iK\_i가 공백으로 구분되어 주어진다.

출력

QQ개의 줄에 걸쳐, ii번째 줄에 깊이가 H_iH\_i인 K_iK\_i-진 트리에서 임의의 두 정점 사이의 거리의 기댓값을 출력하여라. 단, 서로 다른 두 정점을 고를 수 없는 경우에는 00을 출력하여라.

기댓값은 항상 유리수임을 보일 수 있다. 이 유리수를 기약분수 형태로 나타내면 ab\frac{a}{b}라 할 때, (a⋅b−1) mod 1,000,000,007(a \cdot b^{-1}) \bmod 1\\,000\\,000\\,007을 출력하여라. 이때 1,000,000,0071\\,000\\,000\\,007은 소수이다.

어떤 소수 pp와 정수 a,ba,b에 대해 gcd⁡(b,p)=1\gcd(b,p)=1이라면, (a⋅b−1) mod p(a \cdot b^{-1}) \bmod p는 bx≡a(modp)bx \equiv a\pmod{p}를 만족하는 가장 작은 음이 아닌 정수 xx로 정의된다.

bb가 1,000,000,0071\\,000\\,000\\,007의 배수인 테스트 케이스는 입력으로 주어지지 않는다.

제한

  • 1≤Q≤1,000,0001 \leq Q \leq 1\\,000\\,000
  • 1≤H_i≤1091 \leq H\_i \leq 10^9 (1≤i≤Q1 \leq i \leq Q)
  • 1≤K_i≤1091 \leq K\_i \leq 10^9 (1≤i≤Q1 \leq i \leq Q)

예제1

  1. 예제 1

    입력
    3
    2 3
    4 5
    6 7
    
    예상 출력
    500000005
    110835407
    452708333