BOJ 1010 다리 놓기
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)
Author And Source
이 문제에 관하여(BOJ 1010 다리 놓기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jsin2475/BOJ-1010-다리-놓기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)