알고리즘/백준
[BOJ 2688] 줄어들지 않아
I L G N O Y
2020. 5. 22. 05:38
단계와 끝자리 수를 이용해서 DP를 정의할 수 있다.
단계만을 매개변수로 사용할 경우에는, 점화식을 세울 수 없다.
끝자리 수를 이용해서, 점화식을 완성할 수 있다.
DP[i][j] += DP[i - 1][k] (0 <= k <= j)
해설코드(C++).
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
|
#include <iostream>
using namespace std;
long long dp[65][10];
int T, N;
int main() {
for(int i = 0; i < 10; i++)
dp[1][i] = 1;
for(int i = 2; i <= 64; i++){
for(int j = 0; j < 10; j++){
dp[i][j] = 0;
for(int k = 0; k <= j; k++){
dp[i][j] += dp[i - 1][k];
}
}
}
cin >> T;
for(int i = 1; i <= T; i++){
cin >> N;
long long answer = 0;
for(int j = 0; j < 10; j++)
answer += dp[N][j];
cout << answer << endl;
}
return 0;
}
|