CF1385D.a-Good String

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a string s[1n]s[1 \dots n] consisting of lowercase Latin letters. It is guaranteed that n=2kn = 2^k for some integer k0k \ge 0 .

The string s[1n]s[1 \dots n] is called cc -good if at least one of the following three conditions is satisfied:

  • The length of ss is 11 , and it consists of the character cc (i.e. s1=cs_1=c );
  • The length of ss is greater than 11 , the first half of the string consists of only the character cc (i.e. s1=s2==sn2=cs_1=s_2=\dots=s_{\frac{n}{2}}=c ) and the second half of the string (i.e. the string sn2+1sn2+2sns_{\frac{n}{2} + 1}s_{\frac{n}{2} + 2} \dots s_n ) is a (c+1)(c+1) -good string;
  • The length of ss is greater than 11 , the second half of the string consists of only the character cc (i.e. sn2+1=sn2+2==sn=cs_{\frac{n}{2} + 1}=s_{\frac{n}{2} + 2}=\dots=s_n=c ) and the first half of the string (i.e. the string s1s2sn2s_1s_2 \dots s_{\frac{n}{2}} ) is a (c+1)(c+1) -good string.

For example: "aabc" is 'a'-good, "ffgheeee" is 'e'-good.

In one move, you can choose one index ii from 11 to nn and replace sis_i with any lowercase Latin letter (any character from 'a' to 'z').

Your task is to find the minimum number of moves required to obtain an 'a'-good string from ss (i.e. cc -good string for c=c= 'a'). It is guaranteed that the answer always exists.

You have to answer tt independent test cases.

Another example of an 'a'-good string is as follows. Consider the string $s = $ "cdbbaaaa". It is an 'a'-good string, because:

  • the second half of the string ("aaaa") consists of only the character 'a';
  • the first half of the string ("cdbb") is 'b'-good string, because:
    • the second half of the string ("bb") consists of only the character 'b';
    • the first half of the string ("cd") is 'c'-good string, because:
      • the first half of the string ("c") consists of only the character 'c';
      • the second half of the string ("d") is 'd'-good string.

输入格式

The first line of the input contains one integer tt ( 1t21041 \le t \le 2 \cdot 10^4 ) — the number of test cases. Then tt test cases follow.

The first line of the test case contains one integer nn ( 1n131 0721 \le n \le 131~072 ) — the length of ss . It is guaranteed that n=2kn = 2^k for some integer k0k \ge 0 . The second line of the test case contains the string ss consisting of nn lowercase Latin letters.

It is guaranteed that the sum of nn does not exceed 21052 \cdot 10^5 ( n2105\sum n \le 2 \cdot 10^5 ).

输出格式

For each test case, print the answer — the minimum number of moves required to obtain an 'a'-good string from ss (i.e. cc -good string with c=c = 'a'). It is guaranteed that the answer exists.

输入输出样例

  • 输入#1

    6
    8
    bbdcaaaa
    8
    asdfghjk
    8
    ceaaaabb
    8
    bbaaddcc
    1
    z
    2
    ac

    输出#1

    0
    7
    4
    5
    1
    1
首页