https://www.acmicpc.net/problem/1890
λ¬Έμ
N×N κ²μνμ μκ° μ νμ Έ μλ€. μ΄ κ²μμ λͺ©νλ κ°μ₯ μΌμͺ½ μ μΉΈμμ κ°μ₯ μ€λ₯Έμͺ½ μλ μΉΈμΌλ‘ κ·μΉμ λ§κ² μ νλ₯Ό ν΄μ κ°λ κ²μ΄λ€.
κ° μΉΈμ μ νμλ μλ νμ¬ μΉΈμμ κ° μ μλ 거리λ₯Ό μλ―Ένλ€. λ°λμ μ€λ₯Έμͺ½μ΄λ μλμͺ½μΌλ‘λ§ μ΄λν΄μΌ νλ€. 0μ λ μ΄μ μ§νμ λ§λ μ’ μ°©μ μ΄λ©°, νμ νμ¬ μΉΈμ μ νμλ μλ§νΌ μ€λ₯Έμͺ½μ΄λ μλλ‘ κ°μΌ νλ€. ν λ² μ νλ₯Ό ν λ, λ°©ν₯μ λ°κΎΈλ©΄ μ λλ€. μ¦, ν μΉΈμμ μ€λ₯Έμͺ½μΌλ‘ μ νλ₯Ό νκ±°λ, μλλ‘ μ νλ₯Ό νλ λ κ²½μ°λ§ μ‘΄μ¬νλ€.
κ°μ₯ μΌμͺ½ μ μΉΈμμ κ°μ₯ μ€λ₯Έμͺ½ μλ μΉΈμΌλ‘ κ·μΉμ λ§κ² μ΄λν μ μλ κ²½λ‘μ κ°μλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ κ²μ νμ ν¬κΈ° N (4 ≤ N ≤ 100)μ΄ μ£Όμ΄μ§λ€. κ·Έ λ€μ Nκ° μ€μλ κ° μΉΈμ μ νμ Έ μλ μκ° Nκ°μ© μ£Όμ΄μ§λ€. μΉΈμ μ νμλ μλ 0λ³΄λ€ ν¬κ±°λ κ°κ³ , 9λ³΄λ€ μκ±°λ κ°μ μ μμ΄λ©°, κ°μ₯ μ€λ₯Έμͺ½ μλ μΉΈμλ νμ 0μ΄ μ£Όμ΄μ§λ€.
μΆλ ₯
κ°μ₯ μΌμͺ½ μ μΉΈμμ κ°μ₯ μ€λ₯Έμͺ½ μλ μΉΈμΌλ‘ λ¬Έμ μ κ·μΉμ λ§κ² κ° μ μλ κ²½λ‘μ κ°μλ₯Ό μΆλ ₯νλ€. κ²½λ‘μ κ°μλ 2^63-1λ³΄λ€ μκ±°λ κ°λ€.
μ€λ²1. dp μ€μλ μ¬μ΄νΈμ΄λ€
μ μμ¬ν!
λ΅μ λ²μκ° 2^63-1λ³΄λ€ μκ±°λ κ°μΌλ―λ‘ int νμΌλ‘ νλ©΄ νλ¦°λ€ γ γ
intμ λ²μλ μ΅λ 2^31-1 μ΄λ―λ‘, long long νμΌλ‘ κ³ μ³μ£Όμλλ λ§μμ
main ideaλ κ²½μ°μ μλ₯Ό dpλ‘ λμ μν€λ κ²μ΄λ€.
μ²μμ μμ΄λμ΄λ λ μ¬λ¦¬κΈ° μ¬μ λλ°, ꡬν ν λ΅μ΄ νλ¦¬κ² λμμ μ΄λκ° νλ Έλμ§ μ°Ύμ보λ
λ§μ§λ§μ map[i][j]κ° 0μΌλλ map[i][j]μ λ³ΈμΈμ κ°μ΄ κ³μ λμ λμ΄μ νλ¦° κ²μ΄μλ€
κ·Έλμ map[i][j] == 0μΌλ continue;ꡬ문μ λ£μ΄μ€¬λλ λ΅μ΄ μ¬λ°λ₯΄κ² μΆλ ₯λμλ€.
λμ νμ΄
#include <iostream>
#include <string>
using namespace std;
int main(){
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int n;
int map[101][101]={0};
long long cnt[101][101] = {0};
cin >> n;
for (int i = 0; i < n; ++i){
for (int j = 0; j < n; ++j){
cin >> map[i][j];
}
}
cnt[0][0] = 1;
for (int i = 0; i < n; ++i){
for (int j = 0; j < n; ++j){
if(map[i][j]==0) continue; // λ§μ§λ§μ κ³μ κ°μ΄ λμ λλκ±Έ λ§κΈ°μν΄ μμΈμ²λ¦¬ νμ
int go = map[i][j];
if(i + go < n) cnt[i + go][j] += cnt[i][j];
if(j + go < n) cnt[i][j + go] += cnt[i][j];
}
}
cout << cnt[n-1][n-1];
return 0;
}
'π μκ³ λ¦¬μ¦ > BOJ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C++/BOJ] 10942 : ν°λ¦°λ둬? (DP) (0) | 2023.03.18 |
---|---|
[C++/BOJ] 12865 : νλ²ν λ°°λ (DP) / ν μ€νΈμΌμ΄μ€ ν¬ν¨ (1) | 2023.03.17 |
[C++/BOJ] 9251 : LCS (DP) (0) | 2023.03.16 |
[C++/BOJ] 9465 : μ€ν°μ»€ (DP) (0) | 2023.03.15 |
[C++/BOJ] 10971 : μΈνμ μν 2 (μμ νμ, dfs, Backtracking) (0) | 2023.03.06 |