Problem Solving/BOJ

[백준 1354번] [Unordered_map / DP] 무한 수열 2

  • -
728x90
반응형

Approach

근본적으로 다음 문제와 접근 방법은 완전하게 동일하다.

https://viyoung.tistory.com/277

 

[백준 1351번] [Map / DP] 무한 수열

Approach Top-down 방식으로 DP를 짜면 중복되는 계산을 줄이면서 계산을 할 수 있을 것이라는 느낌이 든다. 추가적으로 N이 매우 큰 상황이므로, 기존의 DP처럼 메모리를 미리 확보하고 저장하는 방식

viyoung.tistory.com

다만, 데이터의 양이 매우 많은 상황이고 순서가 크게 중요하지 않은 상황이므로 해시를 활용한 맵인 Unordered_map을 활용하여 시간을 줄여주면 통과하는 문제이다.

Code

#include <bits/stdc++.h>
#define fastio ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0)

using namespace std;
typedef long long ll;
unordered_map<ll, ll> s;
ll n, p, q, x, y;

ll s_value(ll v){
    if(v <= 0) return 1;
    if(s[v]) return s[v];
    else return s[v] = s_value(v / p - x) + s_value(v / q - y);
}

int main(void){
    fastio;
    cin >> n >> p >> q >> x >> y;
    cout << s_value(n) << "\n";
    return 0;
}
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.