μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 |
- μλ£κ΅¬μ‘°
- λ€μ΄λλ―Ήνλ‘κ·Έλλ°
- 그리λ
- λ¨Έμ§μνΈ
- μκ³ λ¦¬μ¦
- λμ κ³νλ²
- μμνμ
- κ·Έλννμ
- λ°±μ€
- λ³ν©μ λ ¬
- λμ ν©
- κ·Έλν
- ꡬν
- μ°μ μμν
- λ°μ΄ν°λ² μ΄μ€
- BFS
- κΉμ΄μ°μ νμ
- ν°μ€ν 리μ±λ¦°μ§
- DFS
- μ λ ¬
- νλ‘κ·Έλλ¨Έμ€
- μ€λΈμ
- DP
- νμ΄μ¬
- LIS
- λλΉμ°μ νμ
- db
- μν
- SQL
- μμꡬνκΈ°
πππ°πΈ π£πΆπ΅ π΄π΅π¦π’π₯πΊ
[λ°±μ€] 10844λ²: μ¬μ΄ κ³λ¨μ - C++ λ³Έλ¬Έ
λ¬Έμ
45656μ΄λ μλ₯Ό 보μ.
μ΄ μλ μΈμ ν λͺ¨λ μ리μμ μ°¨μ΄κ° 1μ΄ λλ€. μ΄λ° μλ₯Ό κ³λ¨ μλΌκ³ νλ€.
μΈμ€μ΄λ μμ κΈΈμ΄κ° NμΈ κ³λ¨ μκ° λͺ κ° μλμ§ κΆκΈν΄μ‘λ€.
Nμ΄ μ£Όμ΄μ§ λ, κΈΈμ΄κ° NμΈ κ³λ¨ μκ° μ΄ λͺ κ° μλμ§ κ΅¬νλ νλ‘κ·Έλ¨μ μμ±νμμ€. (0μΌλ‘ μμνλ μλ μλ€.)
μ λ ₯
첫째 μ€μ Nμ΄ μ£Όμ΄μ§λ€. Nμ 1λ³΄λ€ ν¬κ±°λ κ°κ³ , 100λ³΄λ€ μκ±°λ κ°μ μμ°μμ΄λ€.
μΆλ ₯
첫째 μ€μ μ λ΅μ 1,000,000,000μΌλ‘ λλ λλ¨Έμ§λ₯Ό μΆλ ₯νλ€.
DPλ₯Ό μ΄μ©νμ¬ ν μ μλ λ¬Έμ . λ¬Έμ μ΄λ¦μ μ¬μ΄ κ³λ¨μμΈλ° νλλ μμ½λ€.
N = 1μΌλλ 1λΆν° 9κΉμ§(0μ ν¬ν¨νμ§ μμ) 9κ°μ§κ³ ,
N = 2μΌλλ { 10, 12, 21, 23, 32, 34, ... , 89, 98 } (90μ κ³λ¨μκ° μλ)κΉμ§ 17κ°μ§κ° λμ¨λ€.
N = 3μΌλλ { 101, 121, 123, 210, 212, ... } λ±μ΄ κ°λ₯ν κ²μ΄λ€. μ¬κΈ°μλΆν° κ·μΉμ΄ 보μ΄κΈ° μμνλ€.
μλ₯Ό λ€μ΄ μ리μκ° 3μ΄κ³ 3λ²μ§Έ μ리μμ μλ¦Ώκ°μ΄ 2μΌλ κ°λ₯ν κ³λ¨μλ { 210, 212, 231, 232 } μ΄λ€. μ΄ λ κ³λ¨μμ κ°μλ 2λ²μ§Έ μλ¦Ώκ°μ΄ 1 { 10, 12 } κ³Ό 3 { 31, 32 } μΌλμ κ³λ¨μμ ν©κ³Ό κ°λ€. μ΄μ κ°μ κ·μΉμ μ λ°λΌκ°λ©΄ μ리μλ nμ΄κ³ kλ 0λΆν° 9κΉμ§μ μΈλ±μ€λΌ ν λ, μ νμμ λ€μκ³Ό κ°λ€.
D[n][k] = D[n - 1][k - 1] + D[n - 1][k + 1]
μ¬κΈ°μ μΆκ°μ μΌλ‘ μκ°ν΄μΌλ μμΈκ° μλλ°, λ°λ‘ 0κ³Ό 9μ΄λ€.
μΈλ±μ€ 0μ κ²½μ°μλ λ€μ μ리μ 1λ§ μ€λ κ²μ΄ κ°λ₯νκ³ , 9μΌ λλ 8λ§ μ€λ κ²μ΄ κ°λ₯νκΈ° λλ¬Έμ μ΄λ₯Ό κ³ λ €ν μ΅μ’ μ μΈ μ νμμ λ€μκ³Ό κ°λ€.
D[n][0] = D[n - 1][1]
D[n][k] = D[n - 1][k - 1] + D[n - 1][k + 1] (0 < k < 9)
D[n][9] = D[n - 1][8]
κ° μλ¦Ώκ°λ§λ€μ κ²½μ°μ μκ° λ€μ΄κ°κΈ° λλ¬Έμ μ΅μ’ μ μΌλ‘λ D[n]μ 0λΆν° 9κΉμ§μ κ°μ λν΄μ£Όλ©΄ λλ€. μ΄ λ κ°μ΄ ν¬κΈ° λλ¬Έμ μ°μ°λ§λ€ 1,000,000,000μ λλ μ€μΌνλ€. λ¬Έμ λ Bottom-up λ°©μμΌλ‘ νμλ€.
μ½λ
#include <cstdio>
#define MAX 101
long DP(int num);
long Step[MAX][10] = { 0 };
int main(void) {
int n;
scanf("%d", &n);
printf("%ld\n", DP(n));
return 0;
}
long DP(int num) {
for(int i = 1; i < 10; i++) {
Step[1][i] = 1;
}
for(int i = 2; i <= num; i++) {
Step[i][0] = Step[i - 1][1] % 1000000000;
for(int j = 1; j < 9; j++) {
Step[i][j] = (Step[i - 1][j - 1] + Step[i - 1][j + 1]) % 1000000000;
}
Step[i][9] = Step[i - 1][8] % 1000000000;
}
long sum = 0;
for(int i = 0; i < 10; i++) {
sum += Step[num][i];
sum %= 1000000000;
}
return sum;
}
'μ½λ©ν μ€νΈ μ€λΉ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 2193λ²: μ΄μΉμ - C++ (0) | 2021.07.23 |
---|---|
[λ°±μ€] 11057λ²: μ€λ₯΄λ§ μ - C++ (0) | 2021.07.20 |
[λ°±μ€] 2579λ²: κ³λ¨ μ€λ₯΄κΈ° - C++ (0) | 2021.07.18 |
[λ°±μ€] 2156λ²: ν¬λμ£Ό μμ - C++ (0) | 2021.07.17 |
[λ°±μ€] 9095λ²: 1, 2, 3 λνκΈ° - C++ (0) | 2021.07.16 |