LoginSignup
1
1

More than 3 years have passed since last update.

競プロで使う再帰関数の活用

Last updated at Posted at 2020-02-07

おいおい追加予定

こんなとき再帰使う可能性高いよ!

  1. N、N-1などの状態で同じ処理を行いたいとき
    https://atcoder.jp/contests/abc115/tasks/abc115_d

  2. ループのネストを可変にしたいとき
    https://atcoder.jp/contests/abc114/tasks/abc114_c

簡単な説明

  1. N、N-1などの状態で同じ処理を行いたいとき

そもそも再帰関数の定義のような部分でもある。N,N-1, ... , i , ... , 2, 1などを考えたとき、N番目でもi番目でも1番目でも同様の処理を行う。再帰関数に共通することであるが、終了条件を明確にすることが大切。

  1. ループのネストを可変にしたいとき

競技プログラミングの問題を解いていくと、ループのネストを可変にしたい時がある。例えば、入力が10の時2重ループ、100の時は3重ループを作成したいと言った時だ。for文のネストを最大長で動作するようにしたのち、フラグを作ると言った解決策もないことはない。しかし、応用が効きづらくなるので再帰を覚えた方が良いであろう。

 まとめ

再帰の基本は類似状態の探索っぽいですね

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1