![](https://cdn-ak-scissors.b.st-hatena.com/image/square/57d92a8e4a96070ff2e35d7d522cc6eebfdfd82f/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9UnVieSUyMCVFMyU4MSVBOCUyMFBlcmwlMjAlRTMlODElQTglMjBKYXZhJTIwJUUzJTgxJUE3JUU4JUE3JUEzJUUzJTgxJThGJTIwQXRDb2RlciUyMEFCQyUyMDEyOSUyMEMlMjAlMjglRTUlQkUlOEMlRTclQjclQTglMjklMjAlRTUlOEIlOTUlRTclOUElODQlRTglQTglODglRTclOTQlQkIlRTYlQjMlOTUmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPTViODhiNTExMWE3MmE1NzE3Y2RlMzM1ODhmM2Y4MjI0%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBzdXBlcnJpbm8xMzAmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTk1MmU2ZmQ1YjQzN2JjOGFkNjcwZGIxMzI4ZDBlNzhm%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Daf16f569f4fd7e1a63d9e3f8c0341cd4)
エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Ruby と Perl と Java で解く AtCoder ABC 129 C (後編) 動的計画法 - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Ruby と Perl と Java で解く AtCoder ABC 129 C (後編) 動的計画法 - Qiita
階段数の組合せがフィボナッチ数に等しかったので、前編の解法が使えましたが、もっと汎用的に解けない... 階段数の組合せがフィボナッチ数に等しかったので、前編の解法が使えましたが、もっと汎用的に解けないものでしょうか。 そこで、オフィシャルの editorial にあります動的計画法の登場になります。 n, m = gets.split.map(&:to_i) MOD = 1_000_000_007 dp = Array.new(n + 2, 0) a = [] dp[0] = 1 m.times do |i| a[i] = gets.to_i dp[a[i]] = -1 end n.times do |i| next if dp[i] == -1 if dp[i + 1] != -1 dp[i + 1] += dp[i] dp[i + 1] %= MOD end if dp[i + 2] != -1 dp[i + 2] += dp[i] dp[i + 2] %= MOD end end pu