반응형
https://www.acmicpc.net/problem/11051
이항계수 성질중 파스칼법칙을 써서 구하는데 시간초과가 나서 메모이 제이션으로 최적화 시켰다.
위키피디아에 이항계수검색하고 메모이제이션 검색하면 나올 것이다.
#include <cstdio>
const int MODULO = 10007;
int d[1003][1003];
// pascal's rule
int binomial_coefficient(int n, int k) {
if (n == k || k == 0) {
return 1;
}else if (d[n][k] == 0) {
d[n][k] = (binomial_coefficient(n-1,k-1) + binomial_coefficient(n-1, k))%MODULO;
}
return d[n][k];
}
int main() {
int n, k;
scanf("%d %d", &n, &k);
printf("%d\n", binomial_coefficient(n,k));
}
'Study > algorithms' 카테고리의 다른 글
[백준] 1676. 팩토리얼 0의 개수 (0) | 2020.02.18 |
---|---|
[백준] 9375. 패션왕 신해빈 (0) | 2020.02.16 |
[백준] 11050 이항계수1 (0) | 2020.02.15 |
[백준] 3036. 링 (0) | 2020.02.15 |
[백준] 1541. 잃어버린 괄호 (0) | 2020.02.11 |