Вам задана бинарная строка $$$s$$$ (строка, состоящая только из символов 0 и/или 1).
Вы можете выполнять операции двух типов над $$$s$$$:
Вы можете выполнять эти операции в любом порядке любое количество раз.
Давайте обозначим строку, которую вы получили после выполнения вышеуказанных операций, как $$$t$$$. Строка $$$t$$$ является хорошей, если для каждого $$$i$$$ от $$$1$$$ до $$$|t|$$$ $$$t_i \neq s_i$$$ ($$$|t|$$$ — длина строки $$$t$$$). Пустая строка — всегда хорошая. Обратите внимание, что вы сравниваете результирующую строку $$$t$$$ с исходной строкой $$$s$$$.
Какова минимальная суммарная стоимость сделать строку $$$t$$$ хорошей?
Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следуют $$$t$$$ наборов входных данных.
В единственной строке каждого набора задана бинарная строка $$$s$$$ ($$$1 \le |s| \le 2 \cdot 10^5$$$; $$$s_i \in \{$$$0, 1$$$\}$$$) — исходная строка, состоящая из символов 0 и/или 1.
Дополнительное ограничение на входные данные: общая длина всех строк $$$s$$$ не превышает $$$2 \cdot 10^5$$$.
Для каждого набора входных данных выведите минимальную суммарную стоимость сделать строку $$$t$$$ хорошей.
400110101110001111100
1 1 0 4
В первом наборе вам нужно удалить символ из $$$s$$$, чтобы получить пустую строку $$$t$$$. Только после этого $$$t$$$ станет хорошей. Одно удаление стоит $$$1$$$.
Во втором тесте вы, например, можете удалить второй символ из $$$s$$$, чтобы получить строку 01, а затем поменять местами первый и второй символы, чтобы получить строку $$$t$$$ $$$=$$$ 10. Строка $$$t$$$ — хорошая, так как $$$t_1 \neq s_1$$$ и $$$t_2 \neq s_2$$$. Общая стоимость составляет $$$1$$$.
В третьем тесте вы, например, можете поменять местами $$$s_1$$$ с $$$s_2$$$, $$$s_3$$$ с $$$s_4$$$, $$$s_5$$$ с $$$s_7$$$, $$$s_6$$$ с $$$s_8$$$ и $$$s_9$$$ с $$$s_{10}$$$. Вы получите строку $$$t$$$ $$$=$$$ 1010001110. Все операции обмена бесплатны, поэтому общая стоимость составляет $$$0$$$.
Название |
---|