Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 문자열
- C++
- int
- 백준
- 정렬
- 알고리즘
- 최소공배수
- DFS
- 다이나믹프로그래밍
- Set
- 깊이우선탐색
- map
- 티스토리챌린지
- 유클리드호제법
- priority_queue
- vector
- 우선순위큐
- 백트래킹
- 에라토스테네스의 체
- BFS
- 이분탐색
- 그래프
- 오블완
- Sort
- 배열
- N과M
- 프로그래머스
- 분할정복
- DP
- stoi
Archives
- Today
- Total
안녕 세상아,
[c++/백준] 11051 이항 계수 2 본문
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 |