안녕 세상아,

[c++/백준] 11051 이항 계수 2 본문

백준

[c++/백준] 11051 이항 계수 2

돈 많은 백수가 되고싶다 2023. 6. 28. 15:56

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

 

11051번: 이항 계수 2

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

www.acmicpc.net

다이나믹 프로그래밍을 사용하여 이항계수를 구하는 문제이다. 

 

다이나믹 프로그래밍을 사용하는 이유는 범위가 1000 이하이기 때문이다. 

dp로 이항계수 점화식을 만들면 끝이다.

#include <iostream>
#include <vector>
using namespace std;

int n, k;
int arr[1001][1001];
int main() {
	cin >> n >> k;

	arr[0][0] = 1;
	arr[1][0] = 1;
	arr[1][1] = 1;
	
	for (int i = 2; i <= n; i++) {
		for (int j = 0; j <= i; j++) {
			if (j == 0) {
				arr[i][0] = 1;
			}
			else if (i == j) {
				arr[i][j] = 1;
			}
			else {
				arr[i][j] = (arr[i - 1][j - 1] + arr[i - 1][j]) % 10007;
			}
		}
	}
	cout << arr[n][k];
}

'백준' 카테고리의 다른 글

[c++/백준] 9659 돌 게임 5  (0) 2023.08.18
[c++/백준] 21921 블로그  (1) 2023.08.09
[c++/백준] 1780 종이의 개수  (0) 2023.06.27
[c++/백준] 2630 색종이 만들기  (2) 2023.06.21
[c++/백준] 6603 로또  (0) 2023.06.19