Game Develop

[Algorithm]Baekjoon 11051 : 이항 계수 2 본문

Algorithm/Baekjoon

[Algorithm]Baekjoon 11051 : 이항 계수 2

MaxLevel 2023. 10. 17. 15:10

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

 

11051번: 이항 계수 2

첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\))

www.acmicpc.net

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
 
int n, k;
 
int dp[2000][2000= { 0 };
 
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
 
    cin >> n >> k;
 
    dp[0][1= dp[1][1= dp[1][2= 1;
 
    for (int i = 2; i <= n; ++i)
    {
        for (int j = 1; j <= n + 1++j)
        {
            dp[i][j] = (dp[i - 1][j - 1]%10007 + dp[i - 1][j] % 10007) % 10007;
        }
    }
 
    cout << dp[n][k+1];
}
 
cs

이항계수가 파스칼의 삼각형형태를 띈다는것만 알고있으면 접근은 매우 쉬운 문제.

각각 모듈러연산 하지않고 그냥 더한다음에 한번만 모듈러연산 해줘도 통과는 한다만, 안전하게 다 해주는 습관이 좋다.