CF1917B Erase First or Second Letter

题目描述

给定一个长度为 $n$ 的字符串 $s$。我们定义可以对该字符串进行以下两种操作: - 移除字符串的第一个字符; - 移除字符串的第二个字符。 你的任务是,计算通过任意次数(可以为零)、任意顺序地应用上述操作后,能够得到的不同的非空字符串的数量。

输入格式

每组测试数据包含多个测试用例。第一行包含一个整数 $t$($1 \leq t \leq 10^4$),表示测试用例的数量。接下来是每个测试用例的描述。 每个测试用例的第一行包含一个整数 $n$($1 \leq n \leq 10^5$),表示字符串的长度。 第二行包含字符串 $s$。保证字符串只包含小写英文字母。 保证所有测试用例中 $n$ 的总和不超过 $2 \times 10^5$。

输出格式

对于每个测试用例,输出一个整数,表示可以得到的不同的非空字符串的数量。

说明/提示

在第一个测试用例中,可以得到以下字符串:$a$、$aa$、$aaa$、$aaaa$、$aaaaa$。 在第三个测试用例中,例如,可以通过如下方式得到字符串 $ba$: - 移除当前字符串 $ababa$ 的第一个字符,得到 $baba$; - 移除当前字符串 $baba$ 的第二个字符,得到 $bba$; - 移除当前字符串 $bba$ 的第二个字符,得到 $ba$。 由 ChatGPT 4.1 翻译