公式

D - NG Word Game 解説 by shiomusubi496


次のような戦略を使うことができます。

  1. 文字列 \(S\)01\(N\) 個繰り返した文字列に、文字列 \(T\) を空文字列に初期化する
  2. \(c\)\(S\) の末尾の文字にし、 \(S\) から末尾の文字を取り除く
  3. \(S\)\(T\) を連結させた文字列で質問を送り、返答が No ならば \(T\) の先頭に \(c\) を追加する
  4. \(S\) の長さと \(T\) の長さの和が \(N\) ならば、 \(T\) の先頭に \(S\) を追加する
  5. \(T\) の長さが \(N\) 未満ならば 2. に戻る

この手続きを終えた時、文字列 \(T\) は NG ワードになっています。

実装例 (C++, 43ms)

投稿日時:
最終更新: