https://www.acmicpc.net/problem/2688
λ¬Έμ
μ΄λ€ μ«μκ° μ€μ΄λ€μ§ μλλ€λ κ²μ κ·Έ μ«μμ κ° μ리 μλ³΄λ€ κ·Έ μΌμͺ½ μ리 μκ° μκ±°λ κ°μ λ μ΄λ€.
μλ₯Ό λ€μ΄, 1234λ μ€μ΄λ€μ§ μλλ€.
μ€μ΄λ€μ§ μλ 4μ리 μλ₯Ό μλ₯Ό λ€μ΄ 보면 0011, 1111, 1112, 1122, 2223μ΄ μλ€. μ€μ΄λ€μ§ μλ 4μ리μλ μ΄ 715κ°κ° μλ€.
μ΄ λ¬Έμ μμλ μ«μμ μμ 0(leading zero)μ΄ μμ΄λ λλ€. 0000, 0001, 0002λ μ¬λ°λ₯Έ μ€μ΄λ€μ§ μλ 4μ리μμ΄λ€.
nμ΄ μ£Όμ΄μ‘μ λ, μ€μ΄λ€μ§ μλ nμ리 μμ κ°μλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ ν μ€νΈ μΌμ΄μ€μ κ°μ T(1 <= T <= 1,000)μ΄ μ£Όμ΄μ§λ€. κ° ν μ€νΈ μΌμ΄μ€λ μ«μ νλ nμΌλ‘ μ΄λ£¨μ΄μ Έ μλ€. (1 <= n <= 64)
μΆλ ₯
κ° ν μ€νΈ μΌμ΄μ€μ λν΄ ν μ€μ νλμ© μ€μ΄λ€μ§ μλ nμ리 μμ κ°μλ₯Ό μΆλ ₯νλ€.
νμ΄
dp[i][j] = μ«μjλ‘ λλλ iμ리 μ«μ
μλλ
dp[i][j] = dp[i-1][0] + dp[i-1][1] + dp[i-1][2] + ... dp[i-1][j];
μ΄λ κ² κ°μΌνμ§λ§
μ 보면 κ²°κ΅
dp[i][j-1] = dp[i-1][0] ~ dp[i-1][j-1] μ ν©;
μ΄κΈ° λλ¬Έμ κ·Έλ₯
dp[i][j] = dp[i][j-1] + dp[i-1][j];
μ΄λ κ²λ§ ν΄μ€λ μΆ©λΆνλ€
// νμ΄ : https://whkakrkr.tistory.com
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<vector<long long>>dp(64+1, vector<long long>(10));
for(int i=0; i<=9; i++) {
dp[1][i] = 1;
}
for(int i=1; i<=64; i++) {
dp[i][0] = 1;
}
for(int i=2; i<=64; i++) {
for(int j=1; j<=9; j++) {
dp[i][j] = dp[i][j-1] + dp[i-1][j];
}
}
int t, n;
cin >> t;
while(t--) {
cin >> n;
long long ans = 0;
for(long long i : dp[n]) {
ans += i;
}
cout << ans << "\n";
}
return 0;
}
'ποΈ ICPC Sinchon > Dynamic Programming' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ][C++] λ°±μ€ 1577λ²: λλ‘μ κ°μ (0) | 2024.09.16 |
---|---|
[BOJ][C++] λ°±μ€ 4883λ²: μΌκ° κ·Έλν (0) | 2024.09.13 |
[BOJ][C++] λ°±μ€ 1904λ²: 01νμΌ (0) | 2024.08.25 |
[BOJ][C++] λ°±μ€ 11722λ²: κ°μ₯ κΈ΄ κ°μνλ λΆλΆ μμ΄ (0) | 2024.08.19 |
[BOJ][C++] λ°±μ€ 10164λ²: 격μμμ κ²½λ‘ (0) | 2024.08.15 |