BOJ 1010 다리 놓기

LONGNEW·2021년 3월 28일
0

BOJ

목록 보기
216/333

https://www.acmicpc.net/problem/1010
시간 0.5초, 메모리 128MB
input :

  • 테스트 케이스의 개수 T
  • N, M (0 < N ≤ M < 30)

output :

  • 주어진 조건하에 다리를 지을 수 있는 경우의 수를 출력

조건 :

  • 다리끼리는 서로 겹쳐질 수 없다고 할 때 다리를 지을 수 있는 경우의 수를 구하는 프로그램을 작성하라.

다리를 만들 때는 겹쳐질 수 없다는 것에 너무 치중하면 답을 못 구할 거 같다.

강 동쪽에서의 사이트를 연결만 하면 되는 것이다.
겹쳐지지 않든 말든 신경 쓰지 말고 동쪽에서의 사이트만 결정하면 그 이후의 경우는 자기들이 알아서 하는 것이다.

결국 우리가 해야 할 것은 동쪽C서쪽사이트 를 조합으로 계산하는 것이다.

겹치는거?? 그런거 신경 안 써도 된다. 알아서 나중에 컴퓨터가 구해주겠지 쿠쿠

import sys
from math import factorial

t = int(sys.stdin.readline())
for i in range(t):
    n, m = map(int, sys.stdin.readline().split())
    ans = factorial(m) // (factorial(m - n) * factorial(n))
    print(ans)

0개의 댓글