Hoon222y

[BOJ 11051] 이항계수2 본문

코딩/BOJ & 알고스팟

[BOJ 11051] 이항계수2

hoon222y 2017. 10. 3. 21:38

https://www.acmicpc.net/problem/11051


무작정 하면 자료형 범위를 벗어난다. 따라서 파스칼의 삼각형 공식을 사용하여 문제를 해결하게 된다.

nCr = n-1Cr + n-1Cr-1 을 사용하면 된다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <set>
typedef long long ll;
 
using namespace std;
 
int n,k,dp[1111][1111];
 
int solve(int a,int b){
    if(dp[a][b] >0){
        return dp[a][b];
    }
    if(a == b || b == 0){
        return dp[a][b] = 1;
    }
    return dp[a][b] = (solve(a-1,b-1)+solve(a-1,b))%10007;
}
 
int main(){
    memset(dp,0,sizeof(dp));
    ios::sync_with_stdio(false);
    cin >> n>>k;
    cout << solve(n,k)%10007 <<endl;
    
    return 0;
}
cs


'코딩 > BOJ & 알고스팟' 카테고리의 다른 글

[BOJ 2553] 마지막 팩토리얼 수  (1) 2017.10.04
[BOJ 9663] N-Queen  (0) 2017.10.04
[BOJ 1759] 암호만들기  (0) 2017.10.03
[BOJ 2449] 전구  (1) 2017.09.19
[BOJ 2098] 외판원 순회  (0) 2017.09.18
Comments