[白俊]1003号-(Python Python)-Memorization
質問リンク:https://www.acmicpc.net/problem/1003
この問題は簡単なフィボナッチ数列の再帰関数を用いた.
再帰関数の欠点値が大きくなると、演算が多すぎます.
解決したメモを利用して問題を解くのがこの問題の目的だ.
注記転送は、繰り返し呼び出しを補う方法です.
その名の通り,関数の結果値を他の資料構造に記入する.
コメント作成を使用すると、重複呼び出しを減らすことができることは、画像から容易にわかります.
DP問題の特徴は,注釈再構成が容易であることである.
回帰ルールを探すのは
肝心なのは帰納法を探すことだ.
この問題は簡単なフィボナッチ数列の再帰関数を用いた.
再帰関数の欠点値が大きくなると、演算が多すぎます.
解決したメモを利用して問題を解くのがこの問題の目的だ.
注記転送は、繰り返し呼び出しを補う方法です.
その名の通り,関数の結果値を他の資料構造に記入する.
コメント作成を使用すると、重複呼び出しを減らすことができることは、画像から容易にわかります.
import sys
read = sys.stdin.readline
dp ={
0 : 0,
1 : 1,
2 : 1
}
def f(n):
if n not in dp:
dp[n] = f(n - 1) + f(n - 2)
return dp[n]
t = int(read())
for _ in range(t):
num = int(read())
if not num:
print('1 0')
else:
f(num)
print(dp[num - 1], dp[num])
今回のフィボナッチ数列問題は簡単だが.DP問題の特徴は,注釈再構成が容易であることである.
回帰ルールを探すのは
肝心なのは帰納法を探すことだ.
Reference
この問題について([白俊]1003号-(Python Python)-Memorization), 我々は、より多くの情報をここで見つけました https://velog.io/@hamfan524/백준-1003번-Python-파이썬-memoizationテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol