[BOJ]伯俊1351号無限数列(Python)
質問する
無限数列Aは以下の通りです.
入力
しゅつりょく
制限
例
入力
7 2 3
しゅつりょく
7
ヒント
滝滝xはxを超えない最大整数です.
に答える
import sys
def dfs(num):
global P, Q, arr
if num < 1:
return 1
elif num in arr:
return arr[num]
arr[num] = dfs(num//P) + dfs(num//Q)
return arr[num]
if __name__ == "__main__":
N, P, Q = map(int, sys.stdin.readline().split())
arr = {}
print(dfs(N))
arrをlist()に設定するとメモリを超えます.リストを使用せずにcount変数を作成した後、dfsでnumが0の場合、countは1を増やすように行われると、ほとんどの場合良いですが、隠れたテストケースがあるようです.タイムアウトが発生しました.
そのため、ディクシャナを使ってこそ問題を正常に解決することができる.上のコードではA 0を単独で指定するのではなく,必要に応じて1を返す.
Reference
この問題について([BOJ]伯俊1351号無限数列(Python)), 我々は、より多くの情報をここで見つけました https://velog.io/@deannn/BOJ-백준-1351번-무한-수열-Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol