この記事で使うアルゴリズム
全探索
はじめに
カテゴリー競プロ初中級者100問では、Qiita
にて@e869120
さんがレッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】としてまとめられている100問をPython
で解いています。
全問題の一覧はこちらです
問題
https://atcoder.jp/contests/sumitrust2019/tasks/sumitb2019_d
この問題は全探索を用いて解くことができます。
方針
存在しうる暗証番号をK
通りとして、全探索の計算量はO(NK)
です。この問題では、暗証番号は3桁すなわちK=1000
ですので、全探索でも十分間に合います。
コード
全探索
Python
の場合だと実装によってはTLEとなるため、PyPy
を用います。
1 | from itertools import product |
別解 計算量O(N)
の解法
ハッシュテーブル(setなど)を使い、prefixを保存していくことで効率よく数え上げができます。
1 | N = int(input()) |
記事情報
- 投稿日:2020年5月16日
- 最終更新日:2020年5月16日