Codeforces Round 1003 (Div. 4) |
---|
Закончено |
Скибидус думает, что он избранный! Он доказал это, решив эту сложную задачу. Сможете ли вы?
Дана двоичная строка$$$^{\text{∗}}$$$ $$$t$$$, $$$f(t)$$$ определяется как минимальное количество смежных подстрок, каждая из которых состоит из одинаковых символов, на которые можно разбить $$$t$$$. Например, $$$f(\texttt{00110001}) = 4$$$, потому что $$$t$$$ можно разбить как $$$\texttt{[00][11][000][1]}$$$, где каждый сегмент в скобках состоит из одинаковых символов.
Скибидус даёт вам двоичную строку $$$s$$$ и $$$q$$$ запросов. В каждом запросе один символ строки переворачивается (т.е. $$$\texttt{0}$$$ меняется на $$$\texttt{1}$$$, а $$$\texttt{1}$$$ меняется на $$$\texttt{0}$$$), изменения сохраняются после обработки запроса. После каждого запроса выведите сумму по всем $$$f(b)$$$, где $$$b$$$ — это непустая подпоследовательность$$$^{\text{†}}$$$ строки $$$s$$$, по модулю $$$998\,244\,353$$$.
$$$^{\text{∗}}$$$Двоичная строка состоит только из символов $$$\texttt{0}$$$ и $$$\texttt{1}$$$.
$$$^{\text{†}}$$$Подпоследовательность строки — это строка, которую можно получить, удалив несколько (возможно, ноль) символов из оригинальной строки.
Первая строка содержит целое число $$$t$$$ ($$$1 \leq t \leq 10^4$$$) — количество наборов входных данных.
Первая строка каждого набора содержит двоичную строку $$$s$$$ ($$$1 \leq |s| \leq 2 \cdot 10^5$$$).
Следующая строка каждого набора содержит целое число $$$q$$$ ($$$1 \leq q \leq 2 \cdot 10^5$$$) — количество запросов.
Следующая строка содержит $$$q$$$ целых чисел $$$v_1, v_2, \ldots, v_q$$$ ($$$1 \leq v_i \leq |s|$$$), обозначающих, что $$$s_{v_i}$$$ переворачивается в $$$i$$$-м запросе.
Гарантируется, что сумма $$$|s|$$$ и сумма $$$q$$$ по всем наборам входных данных не превышает $$$2 \cdot 10^5$$$.
Для каждого набора входных данных выведите $$$q$$$ целых чисел в одной строке — ответ после каждого запроса по модулю $$$998\,244\,353$$$.
310121 31011031 2 310111010157 2 4 4 1
10 7 61 59 67 1495 1169 1417 1169 1396
В первом тестовом случае $$$s$$$ становится $$$\texttt{001}$$$ после первого запроса. Давайте посчитаем ответ для каждой подпоследовательности:
Сумма этих значений равна $$$10$$$, по модулю $$$998\,244\,353$$$.
Название |
---|