μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 |
- DFS
- μ€λΈμ
- ν°μ€ν 리μ±λ¦°μ§
- μ°μ μμν
- μμꡬνκΈ°
- SQL
- κ·Έλν
- λ³ν©μ λ ¬
- λ°±μ€
- LIS
- νμ΄μ¬
- λμ κ³νλ²
- μμνμ
- BFS
- λ¨Έμ§μνΈ
- νλ‘κ·Έλλ¨Έμ€
- μλ£κ΅¬μ‘°
- μ λ ¬
- ꡬν
- λ°μ΄ν°λ² μ΄μ€
- 그리λ
- db
- κ·Έλννμ
- λ€μ΄λλ―Ήνλ‘κ·Έλλ°
- DP
- λλΉμ°μ νμ
- λμ ν©
- μκ³ λ¦¬μ¦
- κΉμ΄μ°μ νμ
- μν
πππ°πΈ π£πΆπ΅ π΄π΅π¦π’π₯πΊ
[λ°±μ€] 15988λ²: 1, 2, 3 λνκΈ° 3 - C++ λ³Έλ¬Έ
λ¬Έμ
μ μ 4λ₯Ό 1, 2, 3μ ν©μΌλ‘ λνλ΄λ λ°©λ²μ μ΄ 7κ°μ§κ° μλ€. ν©μ λνλΌ λλ μλ₯Ό 1κ° μ΄μ μ¬μ©ν΄μΌ νλ€.
- 1+1+1+1
- 1+1+2
- 1+2+1
- 2+1+1
- 2+2
- 1+3
- 3+1
μ μ nμ΄ μ£Όμ΄μ‘μ λ, nμ 1, 2, 3μ ν©μΌλ‘ λνλ΄λ λ°©λ²μ μλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ ν μ€νΈ μΌμ΄μ€μ κ°μ Tκ° μ£Όμ΄μ§λ€. κ° ν μ€νΈ μΌμ΄μ€λ ν μ€λ‘ μ΄λ£¨μ΄μ Έ μκ³ , μ μ nμ΄ μ£Όμ΄μ§λ€. nμ μμμ΄λ©° 1,000,000λ³΄λ€ μκ±°λ κ°λ€.
μΆλ ₯
κ° ν μ€νΈ μΌμ΄μ€λ§λ€, nμ 1, 2, 3μ ν©μΌλ‘ λνλ΄λ λ°©λ²μ μλ₯Ό 1,000,000,009λ‘ λλ λλ¨Έμ§λ₯Ό μΆλ ₯νλ€.
λμ κ³νλ²μ μ¬μ©νμ¬ νΈλ λ¬Έμ
π 9095λ²: 1, 2, 3 λνκΈ° μ λμΌν λ¬Έμ μ΄λ€.
λ€λ§ μ μ nμ λ²μκ° 1,000,000λ³΄λ€ μκ±°λ κ°μ μμ΄κΈ° λλ¬Έμ μμ νμλ top-down λ°©μμΌλ‘ νλ©΄ μλκ³ bottom-up λ°©μμΌλ‘ νμ΄μΌ νλ€.
μ€λ²νλ‘μ°κ° λμ§ μλλ‘ μ μν΄μ μλ£ν μ€μ μ ν΄μ€μΌ νλ€.
μ½λ
#include <cstdio>
#define MAX 1000001
#define MOD 1000000009
long long int sum[MAX];
int DP(int num);
int main(void) {
int T;
scanf("%d", &T);
for(int i = 0; i < T; i++) {
int N;
scanf("%d", &N);
printf("%d\n", DP(N));
}
return 0;
}
int DP(int num) {
sum[1] = 1;
for(int i = 2; i <= num; i++) {
sum[i] = (sum[i - 1] + sum[i - 2] + sum[i - 3]) % MOD;
if(i == 2) {
sum[i] += 1;
}
if(i == 3) {
sum[i] += 1;
}
}
return (sum[num] % MOD);
}
'μ½λ©ν μ€νΈ μ€λΉ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 2240λ²: μλλ무 - C++ (0) | 2022.07.14 |
---|---|
[λ°±μ€] 11047: λμ 0 - C++ (0) | 2022.07.12 |
[λ°±μ€] 15486λ²: ν΄μ¬ 2 - C++ (0) | 2022.07.07 |
[λ°±μ€] 12852λ²: 1λ‘ λ§λ€κΈ° 2 - C++ (0) | 2022.07.06 |
[λ°±μ€] 1003λ²: νΌλ³΄λμΉ ν¨μ - C++ (0) | 2022.07.05 |