Codeforces Global Round 22 |
---|
Закончено |
Дана последовательность $$$a_1, a_2, \dots, a_n$$$ длины $$$n$$$, ваша задача посчитать число, по модулю $$$998244353$$$, способов разбить ее на несколько не пустых непрерывных подпоследовательностей так, что сумма элементов в подпоследовательностях является сбалансированной последовательностью.
Последовательность $$$s_1, s_2, \dots, s_k$$$ длины $$$k$$$ является сбалансированной, если $$$s_{i} = s_{k-i+1}$$$ для всех $$$1 \leq i \leq k$$$. Например, $$$[1, 2, 3, 2, 1]$$$ и $$$[1,3,3,1]$$$ сбалансированный, а $$$[1,5,15]$$$ нет.
Формально, каждое разбиение может быть описано последовательностью индексов $$$i_1, i_2, \dots, i_k$$$ длины $$$k$$$ и $$$1 = i_1 < i_2 < \dots < i_k \leq n$$$ такое, что
Пусть $$$s_1, s_2, \dots, s_k$$$ означает суммы элементов в подпоследовательностях относительно разбиения $$$i_1, i_2, \dots, i_k$$$. Формально, для каждого $$$1 \leq j \leq k$$$, $$$$$$ s_j = \sum_{i=i_{j}}^{i_{j+1}-1} a_i = a_{i_j} + a_{i_j+1} + \dots + a_{i_{j+1}-1}. $$$$$$ Например, разбиение $$$[1\,|\,2,3\,|\,4,5,6]$$$ последовательности $$$[1,2,3,4,5,6]$$$ задается последовательностью индексов $$$[1,2,4]$$$, и суммы элементов разбиения будут равны $$$[1,5,15]$$$.
Два разбиения $$$i_1, i_2, \dots, i_k$$$ и $$$i'_1, i'_2, \dots, i'_{k'}$$$ (описанные последовательностью индексов) являются разными, если выполнено хотя бы одно из следующих условий.
В первой строке задано одно целое число $$$t$$$ ($$$1 \leq t \leq 10^5$$$) — количество наборов входных данных. Затем следуют описания наборов входных данных.
Первая строка набора входных данных содержит целое число $$$n$$$ ($$$1 \leq n \leq 10^5$$$), означающее длину последовательности $$$a$$$.
Вторая строка набора входных данных содержит $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$0 \leq a_i \leq 10^9$$$), означающие элементы последовательности $$$a$$$.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$10^5$$$.
Для каждого тестового примера выведите количество разделений, в которых сумма элементов в каждой подпоследовательности сбалансирована по модулю $$$998244353$$$.
61100000000021 140 0 1 051 2 3 2 151 3 5 7 9320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 2 3 4 2 150994942
В первом примере существует только один способ разделить последовательность длины $$$1$$$, который, разумеется, сбалансированный.
Для второго теста существует $$$2$$$ способа разделить последовательность:
В третьем тесте существует $$$3$$$ способа разделить последовательность:
В четвертом примере существует $$$4$$$ способа разделить последовательность:
В пятом примере существует $$$2$$$ способа разделить последовательность:
Для шестого примера любое разбиение подходит. Значит, ответ равен $$$2^{32-1} \equiv 150994942 \pmod {998244353}$$$.
Название |
---|