Algorithm/BOJ
[백준] 1351번 무한 수열
면빈이
2020. 1. 1. 16:54
[적용한 알고리즘]
DP
[아이디어]
N 이 어마어마하게 큰데, 필요한 배열의 개수는
log2 10^12 이기 때문에 그리 많지 않다.
따라서 map 을 이용하면 될 것이다.
[생각의 흐름 / 절차]
내용
[교훈]
내용
<코드>
#include <cstdio>
#include <algorithm>
#include <map>
using namespace std;
typedef long long lld;
map<lld, lld> dp;
lld N, P, Q;
lld go(lld i){
if (i == 0) return 1;
if (dp[i] > 0) return dp[i];
return dp[i] = go(i / P) + go(i / Q);
}
int main(){
scanf("%lld %lld %lld", &N, &P, &Q);
printf("%lld", go(N));
return 0;
}