問題一覧 > 通常問題

No.2893 Minahoshi (Hard)

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 10
作問者 : 👑 seekworserseekworser / テスター : 👑 amentorimaruamentorimaru kemunikukemuniku
1 ProblemId : 11140 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2024-09-12 11:10:07

ストーリー

みなほし「LCP array について分かった気がする!」

みなほし「最大の場合は解けたし、きっと最小の場合も簡単に解けるよね?」

問題文

正整数 NN が与えられます。a または b からなる長さ NN の文字列であって LCP array の要素の総和が最小となるものを構築してください。

LCP array とは 長さ NN の文字列 SS について、SSNN 個の suffix を辞書順でソートした配列を SS の suffix array と言います。
i=1,2,,N1i = 1, 2, \dots, N-1 について、SS の suffix array の ii 番目の要素と i+1i+1 番目の要素の最長共通接頭辞の長さを求めた配列を SS の LCP array (Longest Common Prefix Array) と言います。

この問題はマルチテストケースです。TT 個のテストケースについて回答してください。

入力

TT
case1case_1
\vdots
caseTcase_T

i=1,2,,Ti = 1, 2, \dots, T について、caseicase_i は以下の形式で与えられる。

NN

制約

  • 1T6001 \le T \le 600
  • 2N2×1052 \le N \le 2 \times 10^5
  • すべてのテストケースについての NN の総和は 2×1052 \times 10^5 以下である。
  • 入力はすべて整数

出力

TT 行出力せよ。ii 行目には ii 番目のテストケースについて、 a または b からなる長さ NN の文字列であって LCP array の要素の総和が最小となる文字列を出力せよ。

与えられた NN に対して複数の文字列が条件を満たす場合、 いずれを出力しても正解とみなされる。

サンプル

サンプル1
入力
3
2
3
4
出力
ab
abb
aabb

ab の LCP array は [0][ 0 ]であり、総和は 00 です。

abb の LCP array は [0, 1][ 0,\ 1 ]であり、総和は 11 です。

aabb の LCP array は [1, 0, 1][ 1,\ 0,\ 1 ]であり、総和は 22 です。

いずれも長さ NNa または b からなる文字列として考えられる LCP array の総和として最小の値となります。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。