728x90
반응형
https://www.acmicpc.net/problem/11057
DP문제입니다.
N = 1
1 1 1 1 1 1 1 1 1 1
N = 2
10 9 8 7 6 5 4 3 2 1
N = 3
55 45 36 28 21 15 10 6 3 1
N = 4
220 165 120 84 56 35 20 10 4 1
제가 이해한 DP 규칙입니다.
소스
#include<stdio.h>
#pragma warning(disable:4996)
int main() {
int n;
scanf("%d", &n);
int dp[1001][10] = { 0, };
int sum = 0;
for (int i = 0; i < 10; i++) {
dp[1][i] = 1;
}
for (int i = 2; i <= n; i++) {
for (int j = 0; j < 10; j++) {
for (int k = 0; k <= j; k++) {
dp[i][j] = (dp[i][j] + dp[i - 1][k])%10007;
}
}
}
for (int i = 0; i < 10; i++) {
sum =(sum+dp[n][i])%10007;
}
printf("%d", sum);
}
배열을 0으로 초기화하지않으면 자꾸 값이 이상하게 나오더라구요
그래서 배열을 0으로 초기화했습니다.
반응형
'C#' 카테고리의 다른 글
| [C++문법] 객체의 다양한 활용-1 (0) | 2026.02.21 |
|---|---|
| [C++] C++클래스와 객체 공부하기 (0) | 2026.02.15 |
| [C++]C++선행처리자,매크로,지시자 공부하기 (0) | 2026.02.11 |
| [C++]순열구하는 함수 next_permutation / prev_permutation 알아보기 (0) | 2026.02.08 |
| C++ 오류 =': 'const char'에서 'char *'(으)로 변환할 수 없습니다. 해결방법 (0) | 2026.02.03 |