2293λ²: λμ 1
첫째 μ€μ n, kκ° μ£Όμ΄μ§λ€. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) λ€μ nκ°μ μ€μλ κ°κ°μ λμ μ κ°μΉκ° μ£Όμ΄μ§λ€. λμ μ κ°μΉλ 100,000λ³΄λ€ μκ±°λ κ°μ μμ°μμ΄λ€.
www.acmicpc.net
λ¬Έμ
nκ°μ§ μ’ λ₯μ λμ μ΄ μλ€. κ°κ°μ λμ μ΄ λνλ΄λ κ°μΉλ λ€λ₯΄λ€. μ΄ λμ μ μ λΉν μ¬μ©ν΄μ, κ·Έ κ°μΉμ ν©μ΄ kμμ΄ λλλ‘ νκ³ μΆλ€. κ·Έ κ²½μ°μ μλ₯Ό ꡬνμμ€. κ°κ°μ λμ μ λͺ κ°λΌλ μ¬μ©ν μ μλ€.
μ¬μ©ν λμ μ ꡬμ±μ΄ κ°μλ°, μμλ§ λ€λ₯Έ κ²μ κ°μ κ²½μ°μ΄λ€.
μ λ ₯
첫째 μ€μ n, kκ° μ£Όμ΄μ§λ€. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) λ€μ nκ°μ μ€μλ κ°κ°μ λμ μ κ°μΉκ° μ£Όμ΄μ§λ€. λμ μ κ°μΉλ 100,000λ³΄λ€ μκ±°λ κ°μ μμ°μμ΄λ€.
μΆλ ₯
첫째 μ€μ κ²½μ°μ μλ₯Ό μΆλ ₯νλ€. κ²½μ°μ μλ 231λ³΄λ€ μλ€.

νμ΄κ³Όμ
ν΄λΉ λ¬Έμ λ "nκ°μ μλ‘λ€λ₯Έ λμ μ΄ μ£Όμ΄μ§λ kλΌλ λμ μ λ§λ€ μ μλ κ²½μ°μ μλ λͺκ°μ§μΈκ°?" λΌλ λ¬Έμ μμλ€.
λ¬Έμ μ μ κ·Όνλ κ³Όμ μ΄ μκ°λ³΄λ€ κΉλ€λ‘μ λ κ±° κ°λ€.
μ 리λ₯Ό ν΄λ³΄μλ©΄ μ΄ λ¬Έμ μμ dpμ΄λ€λ³΄λ μ΄μ μ κ°μ μ΄μ©ν΄μ νμ¬μ κ°μ ꡬνλ λ°©μμ λ§μμλ€.
λμ μ μ’ λ₯ nμ κ°μ 보λ λ°©μμΌλ‘ νμ΄κ° μ΄λ£¨μ΄μ§λ€.
μμλ₯Ό λ€μ΄
2 10
1
2
νμμΌλ‘ μμκ° λ€μ΄μλ€κ³ κ°μ μ ν΄λ³΄κ³ 1 ~ 6κΉμ§ ꡬν΄λ³΄λ©΄
1 : 1 : 1
2 : 1 1 | 2 : 2
3 : 1 1 1 | 2 1 : 2
4 : 1 1 1 1 | 2 1 1 | 2 2 : 3
5 : 1 1 1 1 1 | 2 1 1 1 | 2 2 1 : 3
6 : 1 1 1 1 1 1 | 2 1 1 1 1 | 2 2 1 1 | 2 2 2 : 4
.
.
.
νμμΌλ‘ μ κ°κ° λλ λ°©μμ΄κ³ , μμ κ°μ λͺ¨μ΅μμ 2μ λ°°μλ§λ€ κ°μ§μκ° 1μ© μ¦κ°νλ λͺ¨μ΅μ νμΈν μ μλ€.
μμ μν©μ ν΅ν΄ νμ¬μ¬μ©νλ λμ μ ν¬κΈ°μ λ°°μλ§λ€ κ°μ΄ μλ‘κ² κ°±μ μ΄ λλ€λ κ²μ νμΈν μ μμ΄μ
2μ°¨μ λ°°μ΄ νμμΌλ‘ μ νμμ μ κ°ν΄λ³΄λ©΄
dp[y][x] = dp[y - 1][x] + dp[y][x - νμ¬ μ¬μ©νλ λμ μ ν¬κΈ°] λΌλ κ²μ λ³Ό μ μκ³ ,
λ¬Έμ μμ μꡬνλ λ©λͺ¨λ¦¬μ ν¬κΈ°κ° 4MBλ°μ μλμ΄μ 1μ°¨μ λ°°μ΄ νμμΌλ‘ μ€μ¬λ³΄μλ©΄
μ΄μ μ ꡬν [y - 1]μ κ°μ λ°νμΌλ‘ νμ¬μ [y]κ°μ ꡬμνλ λ°©μμ΄λ
dp[n] = dp[n](μ΄μ μ ꡬν κ°) + dp[n - νμ¬ μ¬μ©νλ λμ μ ν¬κΈ°] νμμΌλ‘ μ νμμ μΈμΈ μ μλ€λ κ²μ νμΈ ν μ μμλ€.
code
#include <iostream>
int coin[101];
int dp[10001];
int main(void)
{
int n, k, temp;
std::cin >> n >> k;
for (int i = 0; i < n; i++) {
std::cin >> coin[i];
}
for (int i = 0; i < n; i++) {
for (int j = 1; j <= k; j++) {
temp = dp[j];
if (coin[i] == j) dp[j]++;
if (1 <= j - coin[i])
dp[j] = temp + dp[j - coin[i]];
}
}
std::cout << dp[k] << "\n";
return (0);
}
νκΈ°
dpμ΄κΈ΄νμ§λ§ μ΄ λ¬Έμ λ νμμ νλ dpμλ μ΄μ§ λ€λ₯΄κ² μμ©κΉμ§κ° ν¬ν¨λ λλμ΄μλ€.
μ κ·ΌνκΈ°κΉμ§ λ§μ λ Έλ ₯μ΄ νμνλ λ¬Έμ κ°λ€.
'Algorithm > λ¬Έμ νμ΄' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 2225λ² - ν©λΆν΄ (C++) (0) | 2023.08.27 |
---|---|
[λ°±μ€] 2294λ² - λμ 2 (C++) (0) | 2023.08.26 |
[λ°±μ€] 1327λ² - μνΈ κ²μ (C++) (0) | 2023.08.24 |
[λ°±μ€] 14916λ² - κ±°μ€λ¦λ (C++) (0) | 2023.08.24 |
[λ°±μ€] 1043λ² - κ±°μ§λ§ (C++) (0) | 2023.08.22 |