폴하버의 삼각형

시간 제한1초메모리 제한128 MB

요약
각 행의 합이 1이라는 조건과 점화식 F(i,j)=i/j*F(i-1,j-1)로 파울하버 삼각형을 만들고, 주어진 m, k에 대한 값을 기약분수로 출력한다.
난이도

보통10점 중 5점

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

문제

11부터 nn까지 각 수의 mm제곱을 모두 더한 값은

S(n,m)=∑j=1njmS(n, m) = \sum_{j=1}^{n} j^m

이며, 이는 nn에 대한 차수 m+1m+1의 다항식으로 나타낼 수 있다.

S(n,m)=∑k=1m+1F(m,k) nkS(n, m) = \sum_{k=1}^{m+1} F(m, k)\, n^k

예를 들면 다음과 같다.

S(n,1)=1+⋯+n=12n2+12nS(n, 1) = 1 + \dots + n = \tfrac{1}{2}n^2 + \tfrac{1}{2}n S(n,2)=1+⋯+n2=13n3+12n2+16nS(n, 2) = 1 + \dots + n^2 = \tfrac{1}{3}n^3 + \tfrac{1}{2}n^2 + \tfrac{1}{6}n S(n,3)=1+⋯+n3=14n4+12n3+14n2S(n, 3) = 1 + \dots + n^3 = \tfrac{1}{4}n^4 + \tfrac{1}{2}n^3 + \tfrac{1}{4}n^2 S(n,4)=1+⋯+n4=15n5+12n4+13n3−130nS(n, 4) = 1 + \dots + n^4 = \tfrac{1}{5}n^5 + \tfrac{1}{2}n^4 + \tfrac{1}{3}n^3 - \tfrac{1}{30}n

위 식에 나오는 계수 F(m,k)F(m, k)는 폴하버의 삼각형을 이룬다.

1
1/21/2
1/61/21/3
01/41/21/4
-1/3001/31/21/5
0-1/1205/121/21/6
1/420-1/601/21/21/7

F(m,k)F(m, k)에서 행 번호 mm은 맨 위가 00번이고, 열 번호 kk는 맨 왼쪽이 11번이다.

폴하버의 삼각형은 다음과 같이 만들 수 있다.

  1. j>1j > 1일 때 F(i,j)=ij F(i−1,j−1)F(i, j) = \dfrac{i}{j} \, F(i-1, j-1)이다.
  2. F(i,1)F(i, 1)은 ii번째 행의 값을 모두 더했을 때 11이 되도록 정한다.

mm과 kk가 주어졌을 때 F(m,k)F(m, k)를 구하는 프로그램을 작성하라.

입력

첫째 줄에 테스트 케이스의 개수 PP (1≤P≤10001 \le P \le 1000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어지며, mm과 kk가 공백으로 구분되어 주어진다. (0≤m≤4000 \le m \le 400, 1≤k≤m+11 \le k \le m+1)

출력

각 테스트 케이스에 대해 F(m,k)F(m, k)를 출력한다. 값이 정수이면 정수로 출력하고, 정수가 아니면 기약분수 p/qp/q 꼴로 출력한다.

예제4

  1. 예제 1

    입력
    4
    4 1
    4 3
    86 79
    400 401
    
    예상 출력
    -1/30
    1/3
    -22388337
    1/401
    
  2. 예제 2

    입력
    5
    4 1
    4 2
    4 3
    4 4
    4 5
    
    예상 출력
    -1/30
    0
    1/3
    1/2
    1/5
    
  3. 예제 3

    입력
    6
    0 1
    1 1
    1 2
    2 1
    2 2
    2 3
    
    예상 출력
    1
    1/2
    1/2
    1/6
    1/2
    1/3
    
  4. 예제 4

    입력
    4
    10 11
    10 10
    5 1
    6 1
    
    예상 출력
    1/11
    1/2
    0
    1/42