Codeforces Round 884 (Div. 1 + Div. 2) |
---|
Закончено |
Дана последовательность $$$a_1,\dots,a_n$$$ длины $$$n$$$, изначально все её элементы — пустые. Над последовательностью совершают $$$n$$$ обновлений, в каждом из которых один из элементов $$$a$$$ становится некоторым числом, таким образом, что после всех обновлений $$$a$$$ становится перестановкой $$$1,2,\dots,n$$$.
После каждого обновления найдите число способов (по модулю $$$998\,244\,353$$$) заполнить остающиеся пустые места в $$$a$$$ так, чтобы $$$a$$$ стала перестановкой $$$1,2,\dots,n$$$, причём длины всех циклов в $$$a$$$ стали кратны $$$3$$$.
Перестановкой $$$1,2,\dots,n$$$ является последовательность длины $$$n$$$, состоящая из $$$n$$$ различных целых чисел от $$$1$$$ до $$$n$$$ в произвольном порядке. Циклом в перестановке $$$a$$$ называется последовательность попарно различных чисел $$$(i_1,\dots,i_k)$$$, такая что $$$i_2 = a_{i_1},i_3 = a_{i_2},\dots,i_k = a_{i_{k-1}},i_1 = a_{i_k}$$$. Длина этого цикла равна числу $$$k$$$, которое кратно $$$3$$$, если и только если $$$k \equiv 0 \pmod 3$$$.
Первая строка содержит одно целое число $$$n$$$ ($$$3 \le n \le 3 \cdot 10^5$$$, $$$n \equiv 0 \pmod 3$$$).
В $$$i$$$-й из следующих $$$n$$$ строк содержатся по два числа $$$x_i$$$ и $$$y_i$$$, что значит, что $$$i$$$-е обновление делает $$$a_{x_i}$$$ равным $$$y_i$$$.
Гарантируется, что $$$x_1,\dots,x_n$$$ и $$$y_1,\dots,y_n$$$ являются перестановками $$$1,2,\dots,n$$$, т. е. $$$a$$$ становится перестановкой $$$1,2,\dots,n$$$ после всех обновлений.
Выведите $$$n$$$ строк: число способов (по модулю $$$998\,244\,353$$$) после $$$1,2,\dots,n$$$ обновлений.
6 3 2 1 4 4 5 2 6 5 1 6 3
32 8 3 2 1 1
3 1 1 2 3 3 2
0 0 0
18 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 1
671571067 353924552 521242461 678960117 896896000 68992000 6272000 627200 62720 7840 1120 160 32 8 2 1 1 1
В первом примере, скажем, после $$$3$$$-го обновления есть $$$3$$$ способа заполнить последовательность $$$a = [4,\_,2,5,\_,\_]$$$:
Во втором примере первое же обновление создаёт цикл длины $$$1$$$, так что нет ни одного способа сделать так, чтобы длины всех циклов были кратны $$$3$$$.
Название |
---|