이번 문제는 Gold IV 난이도로 설정되어 있습니다.
무한히 이어지는 수열이 있는데, 이 수열은 다음과 같은 규칙을 가지고 있습니다.
주어진 자연수 P, Q에 대하여
계속 나누어주는 것이기 때문에
제가 작성한 소스입니다. 소스는 참고용으로 봐주세요.
//----------------------------------------------------------
// baekjoon #1351 - Infinity Series
// - by Aubrey Choi
// - created at 2020-01-16
//----------------------------------------------------------
#include <stdio.h>
#include <unordered_map>
std::unordered_map<long long, long long> dp;
long long get(long long n, long long p, long long q)
{
if(n==0) return 1;
if(dp[n]) return dp[n];
return dp[n]=get(n/p,p,q)+get(n/q,p,q);
}
int main()
{
long long n, p, q;
scanf("%lld%lld%lld",&n,&p,&q);
printf("%lld\n", get(n, p, q));
}
반응형
'Programming > BOJ' 카테고리의 다른 글
#1354 무한 수열 2(Dynamic Programming) (0) | 2020.02.02 |
---|---|
#1353 합과 곱(Mathematics, Binary Search) (0) | 2020.02.01 |
#1344 축구(Mathematics) (0) | 2020.01.30 |
#1342 행운의 문자열(Back tracking) (0) | 2020.01.26 |
#1339 단어 수학(Mathematics) (0) | 2020.01.26 |
댓글