아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

조합의 개수

면접 대비

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

요약
최대 1000개의 (n, k) 쌍이 주어질 때 각 쌍에 대해 이항계수 C(n, k)를 10^9+7로 나눈 나머지를 구한다.
난이도

보통10점 중 4점

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

문제

원소가 nn개인 집합에서 kk개를 고른 것을 kk-조합이라고 한다.

예를 들어 1부터 5까지의 수로 이루어진 집합에서는 다음과 같은 조합이 나온다.

  • 1-조합(한 번에 1개를 고름): (1), (2), (3), (4), (5)
  • 2-조합(한 번에 2개를 고름): (1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (3, 4), (3, 5), (4, 5)
  • 3-조합(한 번에 3개를 고름): (1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 3, 4), (1, 3, 5), (1, 4, 5), (2, 3, 4), (2, 3, 5), (2, 4, 5), (3, 4, 5)
  • 4-조합(한 번에 4개를 고름): (1, 2, 3, 4), (1, 2, 3, 5), (1, 2, 4, 5), (1, 3, 4, 5), (2, 3, 4, 5)
  • 5-조합(모든 원소를 한 번에 고름): (1, 2, 3, 4, 5)
  • 0-조합(아무 원소도 고르지 않음): ()

원소가 nn개인 집합의 kk-조합의 개수는 다음 식으로 구한다.

(nk)=n(n−1)⋯(n−k+1)k(k−1)⋯1\binom{n}{k} = \frac{n(n-1)\cdots(n-k+1)}{k(k-1)\cdots 1}

위 목록에서 보듯이 (50)=1\binom{5}{0} = 1, (51)=5\binom{5}{1} = 5, (52)=10\binom{5}{2} = 10, (53)=10\binom{5}{3} = 10, (54)=5\binom{5}{4} = 5, (55)=1\binom{5}{5} = 1이다.

여러 개의 (n,k)(n, k) 쌍이 주어질 때 각각에 대해 (nk)\binom{n}{k}를 계산하라.

입력

첫째 줄에 정수 tt가 주어진다. 이어지는 tt개의 줄에는 공백으로 구분된 두 정수 nn과 kk가 주어진다.

  • 1≤t≤10001 \le t \le 1000
  • 1≤n≤10001 \le n \le 1000
  • 0≤k≤n0 \le k \le n

출력

각 (n,k)(n, k) 쌍에 대해 원소가 nn개인 집합의 kk-조합의 개수를 10000000071000000007(109+710^9 + 7)로 나눈 나머지를 한 줄에 하나씩, 입력에 주어진 순서대로 출력한다.

예제3

  1. 예제 1

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

    입력
    3
    123 54
    7 4
    20 10
    
    예상 출력
    757228090
    35
    184756
    
  3. 예제 3

    입력
    2
    1 0
    1 1
    
    예상 출력
    1
    1