動的計画法(DP)は、重複する部分問題と最適部分構造を持つ問題を、各部分問題を一度計算して結果を再利用することで解きます。2つのスタイルは、メモ化(トップダウン)と表作成(ボトムアップ)です。
基本的な考え方
素朴な再帰は同じ部分問題を指数時間で再計算します。DPはそれらをキャッシュし、指数時間の処理を多項式時間に圧縮します。
メモ化(トップダウン)
python
functools lru_cache
():
n < :
n
fib(n - ) + fib(n - )
