문제풀이/백준oj
[백준oj] 1010번 다리놓기
Hyeon-Uk
2020. 11. 11. 23:08
반응형
1010번: 다리 놓기
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다.
www.acmicpc.net
이문제는 팩토리얼과 조합을 알면 풀 수 있는문제이다. m개의 다리중 n개의 다리를 순서 상관없이 선택한뒤, 선택한 다리들을 차례대로 이어주면 되기 때문이다.
nCr= n!/((n-r)!*r!) 공식을 써주면 문제가 풀린다.
def fac(i):
if(i<=1):
return 1
else:
return i*fac(i-1)
t=int(input())
for i in range(t):
a,b=input().split(" ")
a=int(a)
b=int(b)
print(int(fac(b)/(fac(b-a)*fac(a))),end="\n")
반응형