Universal Cup Judging System

Universal Cup

시간 제한: 3 s 메모리 제한: 2048 MB 총점: 100 난이도: [표시] 해킹 가능 ✓
통계

Little Cyan Fish は文字列理論がとても好きです。今日、Little Cyan Fish はあなたを誘って、人間のニックネームの研究を一緒に続けようとしています。

Little Cyan Fish の宇宙では、人間のニックネームは英小文字(a から z)のみからなる文字列として表すことができます。例えば、「qingyu」や「xiuga」は人間のニックネームですが、「Abacde」はそうではありません。

Little Cyan Fish は、名前 $s$ が $s$ のすべての真接尾辞$^\dagger$ $t$ よりも辞書順で小さい$^*$とき、かつそのときに限り、$s$ を Lyndon 文字列であるとみなします。例えば、「abacde」は Lyndon 文字列ですが、「qingyu」は Lyndon 文字列ではありません(なぜなら、その真接尾辞「ingyu」よりも辞書順で小さくないからです)。

今、Little Cyan Fish は長さ $n$ の人間のニックネーム $s$ をあなたに与えます。1 回の操作では、1 つの位置を選び、その位置の文字を任意の英小文字に置き換えることができます。$s$ を Lyndon 文字列にするために必要な最小の操作回数を求めてください。

$^*$ ある文字列が別の文字列よりも辞書順で小さいとは、その文字列がもう一方の文字列の真接頭辞であるか、あるいは 2 つの文字列が最初に異なる位置における文字がアルファベット順でより前に現れることをいいます。

$^\dagger$ 真接尾辞とは、元の文字列と等しくない空でない接尾辞のことです。例えば、「qqoj」には $3$ 個の真接尾辞があり、それらは「j」、「oj」、「qoj」です。

入力

複数のテストケースが与えられます。入力の最初の行には、テストケースの個数を表す単一の整数 $T$($1 \le T \le 10^4$)が含まれます。

各テストケースについて、最初の行には単一の整数 $n$($1 \le n \le 3000$)が含まれます。2 行目には英小文字のみからなる長さ $n$ の文字列 $s$ が含まれます。

すべてのテストケースにわたる $n^2$ の総和は $9 \times 10^6$ を超えないことが保証されます。

出力

各テストケースについて、$s$ を Lyndon 文字列にするために必要な最小の操作回数を表す単一の整数を 1 行に出力してください。

入出力例

入力 1

4
4
abac
4
aaaa
4
bbaa
5
bbaaa

出力 1

0
1
2
3

注記

1 番目のサンプルテストケースでは、文字列はすでに Lyndon 文字列であるため、操作は必要ありません。

2 番目のサンプルテストケースでは、Little Cyan Fish は最後の文字を b に変更して aaab を得ることができます。

3 番目のサンプルテストケースでは、最初の文字と最後の文字をそれぞれ a と c に変更して abac を得ることができます。1 回の操作では不十分です。

4 番目のサンプルテストケースでは、最初の 2 文字を a に、最後の文字を b に変更して aaaab を得ることができます。3 回未満の操作でこれを達成することは不可能です。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#3006EditorialOpenNew Editorial for Problem #22878AnonymousView

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.