μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 |
- κ·Έλν
- λμ κ³νλ²
- νλ‘κ·Έλλ¨Έμ€
- λ€μ΄λλ―Ήνλ‘κ·Έλλ°
- db
- μλ£κ΅¬μ‘°
- SQL
- κΉμ΄μ°μ νμ
- λ°±μ€
- DFS
- μ°μ μμν
- ν°μ€ν 리μ±λ¦°μ§
- λμ ν©
- μν
- μκ³ λ¦¬μ¦
- μμꡬνκΈ°
- λλΉμ°μ νμ
- μ λ ¬
- λ¨Έμ§μνΈ
- νμ΄μ¬
- μ€λΈμ
- 그리λ
- ꡬν
- κ·Έλννμ
- DP
- μμνμ
- LIS
- λ³ν©μ λ ¬
- BFS
- λ°μ΄ν°λ² μ΄μ€
πππ°πΈ π£πΆπ΅ π΄π΅π¦π’π₯πΊ
[λ°±μ€] 2225λ²: ν©λΆν΄ - C++ λ³Έλ¬Έ
λ¬Έμ
0λΆν° NκΉμ§μ μ μ Kκ°λ₯Ό λν΄μ κ·Έ ν©μ΄ Nμ΄ λλ κ²½μ°μ μλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
λ§μ μ μμκ° λ°λ κ²½μ°λ λ€λ₯Έ κ²½μ°λ‘ μΌλ€(1+2μ 2+1μ μλ‘ λ€λ₯Έ κ²½μ°). λν ν κ°μ μλ₯Ό μ¬λ¬ λ² μΈ μλ μλ€.
μ λ ₯
첫째 μ€μ λ μ μ N(1 ≤ N ≤ 200), K(1 ≤ K ≤ 200)κ° μ£Όμ΄μ§λ€.
μΆλ ₯
첫째 μ€μ λ΅μ 1,000,000,000μΌλ‘ λλ λλ¨Έμ§λ₯Ό μΆλ ₯νλ€.
DPλ₯Ό μ΄μ©νμ¬ ν μ μλ λ¬Έμ .
λ¬Έμ μ΄ν΄λ₯Ό μλͺ»ν΄μ..(μ λͺ»ν΄μ X, μλͺ» ν΄μ O) κ³ μμ λ§μ΄ νλ λ¬Έμ λ€..γ γ
μμ μ λ ₯μΌλ‘ μ£Όμ΄μ§ 20 2μ κ²½μ° 20μ 2κ°μ μ«μλ‘ λνλ κ²½μ°μΈ
20 = 0 + 20 = 1 + 19 = 2 + 18 = 3 + 17 = ... = 19 + 1 = 20 + 0 μ κ²½μ°λ₯Ό λͺ¨λ λνμ¬ λ΅μ΄ 21μ΄ λλ€.
long long μλ£νμ 2μ°¨μ λ°°μ΄ arr[][]μ μ μΈν΄μ€λ€. arr[i][j]μλ iλ² λνμ¬ jλ₯Ό λ§λ€ μ μλ κ²½μ°μ μκ° λ€μ΄κ°λ€. iκ° 1μΌ κ²½μ°, μ¦ jλ₯Ό νλ²λ§ λνμ¬ λ§λ€ μ μλ κ²½μ°μ μλ j κ·Έ μ체 ν κ°μ§ λΏμ΄λ―λ‘ arr[1][j]λ λͺ¨λ 1λ‘ μ΄κΈ°νν΄μ€λ€.
j = (j - m) + m (0 ≤ m ≤ j)μΈ μ μ μ΄μ©νμμ λ, iλ² λνμ¬ jλ₯Ό λ§λ€ μ μλ κ²½μ°λ (i - 1)λ² λνμ¬ m(λλ (j - m))μ λ§λ€ μ μλ κ²½μ°μ μμ κ°κΈ° λλ¬Έμ, μ νμμ λ€μκ³Ό κ°μ μμΌλ‘ ννν μ μλ€.
for(int i = 2; i <= k; i++) {
for(int j = 0; j <= n; j++) {
for(int m = 0; m <= j; m++) {
arr[i][j] += arr[i - 1][m];
}
}
}
μ£Όμν μ μ..MOD(1,000,000,000)λ₯Ό μ¬λ°λ₯Έ μμΉμ λ£μ΄ λλ¨Έμ§ μ°μ°μ ν΄μΌνλ€. μ΄κ±Έλ‘ λλ²μ΄λ νλ Έλ€.
μ 체 μ½λλ λ€μκ³Ό κ°λ€.
μ½λ
#include <cstdio>
#define MOD 1000000000
long long DP(int n, int k);
int main(void) {
int n, k;
scanf("%d %d", &n, &k);
printf("%lld\n", DP(n, k));
return 0;
}
long long DP(int n, int k) {
long long arr[201][201] = { 0 };
for(int i = 0; i <= n; i++) {
arr[1][i] = 1;
}
for(int i = 2; i <= k; i++) {
for(int j = 0; j <= n; j++) {
for(int m = 0; m <= j; m++) {
arr[i][j] += arr[i - 1][m];
arr[i][j] %= MOD;
}
}
}
return arr[k][n];
}
'μ½λ©ν μ€νΈ μ€λΉ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 2751λ²: μ μ λ ¬νκΈ° 2 - C++ (0) | 2021.08.07 |
---|---|
[λ°±μ€] 11052λ²: μΉ΄λ ꡬ맀νκΈ° - C++ (0) | 2021.08.03 |
[λ°±μ€] 9461λ²: νλλ° μμ΄ - C++ (0) | 2021.08.01 |
[λ°±μ€] 1699λ²: μ κ³±μμ ν© - C++ (0) | 2021.07.30 |
[λ°±μ€] 11054λ²: κ°μ₯ κΈ΄ λ°μ΄ν λ λΆλΆ μμ΄ - C++ (0) | 2021.07.28 |