Codeforces Round 656 (Div. 3) |
---|
Закончено |
Вам дана строка $$$s[1 \dots n]$$$, состоящая из строчных латинских букв. Гарантируется, что $$$n = 2^k$$$ для некоторого целого числа $$$k \ge 0$$$.
Строка $$$s[1 \dots n]$$$ называется $$$c$$$-хорошей, если выполняется как минимум одно из следующих условий:
Например: «aabc» является 'a'-хорошей, «ffgheeee» является 'e'-хорошей.
За один ход вы можете выбрать один индекс $$$i$$$ от $$$1$$$ до $$$n$$$ и заменить $$$s_i$$$ на любую строчную латинскую букву (любой символ от 'a' до 'z').
Ваша задача — найти минимальное количество ходов, необходимое, чтобы получить 'a'-хорошую строку из $$$s$$$ (т.е. $$$c$$$-хорошую строку для $$$c=$$$ 'a'). Гарантируется, что ответ всегда существует.
Вам нужно ответить на $$$t$$$ независимых наборов тестовых данных.
Еще один пример 'a'-хорошей строки является следующим. Например, рассмотрим строку $$$s = $$$«cdbbaaaa». Это 'a'-хорошая строка, потому что:
Первая строка теста содержит одно целое число $$$t$$$ ($$$1 \le t \le 2 \cdot 10^4$$$) — количество наборов тестовых данных. Затем следуют $$$t$$$ наборов тестовых данных.
Первая строка набора тестовых данных содержит одно целое число $$$n$$$ ($$$1 \le n \le 131~072$$$) — длину $$$s$$$. Гарантируется, что $$$n = 2^k$$$ для некоторого целого числа $$$k \ge 0$$$. Вторая строка набора тестовых данных содержит строку $$$s$$$, состоящую из $$$n$$$ строчных латинских букв.
Гарантируется, что сумма всех $$$n$$$ не превосходит $$$2 \cdot 10^5$$$ ($$$\sum n \le 2 \cdot 10^5$$$).
Для каждого набора тестовых данных выведите ответ на него — наименьшее количество ходов, необходимое, чтобы получить 'a'-хорошую строку $$$s$$$ (т.е. $$$c$$$-хорошую строку для $$$c =$$$ 'a'). Гарантируется, что ответ существует.
6 8 bbdcaaaa 8 asdfghjk 8 ceaaaabb 8 bbaaddcc 1 z 2 ac
0 7 4 5 1 1
Название |
---|