사용자 도구

사이트 도구


ps:problems:boj:16725

다항 계수

ps
링크acmicpc.net/…
출처BOJ
문제 번호16725
문제명다항 계수
레벨플래티넘 5
분류

조합론

시간복잡도O(nm)
인풋사이즈n<=500, m<=500
사용한 언어Python 3.13
제출기록43000KB / 72ms
최고기록72ms
해결날짜2026/04/09

풀이

  • 문제를 바꿔쓰면, [0..n] 범위의 자연수 m개로 이루어진 튜플 중에서 합이 k가 되는 것의 개수를 세는 문제이다.
  • 공식 풀이는 O(m*k)의 DP 이지만, 조합론적 방법으로 O(m+k)에 푸는 것이 가능하다. 풀이는 상한이 주어진 composition 참고
  • 이 문제에서는 k의 범위가 k⇐m*n 으로 주어져 있으므로, 시간복잡도가 O(m*n)이 된다

코드

"""Solution code for "BOJ 16725. 다항 계수".

- Problem link: https://www.acmicpc.net/problem/16725
- Solution link: http://www.teferi.net/ps/problems/boj/16725

Tags: [combinatorics]
"""

from teflib import combinatorics


MOD = 1_000_000_009


def main():
    n, m, k = [int(x) for x in input().split()]
    print(combinatorics.count_compositions(k, m, MOD, hi=n))


if __name__ == '__main__':
    main()

토론

댓글을 입력하세요:
P D E D​ R
 
ps/problems/boj/16725.txt · 마지막으로 수정됨: 2026/04/09 10:49 저자 teferi