CF1844H.Multiple of Three Cycles
NOI/NOI+/CTSC
通过率:0%
时间限制:3.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
An array a1,…,an of length n is initially all blank. There are n updates where one entry of a is updated to some number, such that a becomes a permutation of 1,2,…,n after all the updates.
After each update, find the number of ways (modulo 998244353) to fill in the remaining blank entries of a so that a becomes a permutation of 1,2,…,n and all cycle lengths in a are multiples of 3.
A permutation of 1,2,…,n is an array of length n consisting of n distinct integers from 1 to n in arbitrary order. A cycle in a permutation a is a sequence of pairwise distinct integers (i1,…,ik) such that i2=ai1,i3=ai2,…,ik=aik−1,i1=aik. The length of this cycle is the number k, which is a multiple of 3 if and only if k≡0(mod3).
一个长度为 n 的数组 a1,…,an 初始时所有元素均为空。接下来进行 n 次更新,每次将数组 a 中的一个空位置赋值为某个整数,使得所有更新完成后,a 成为 1,2,…,n 的一个排列。
每次更新后,请计算:将 a 中剩余的空位置填满,使得最终 a 成为 1,2,…,n 的一个排列,且 a 中所有循环的长度均为 3 的倍数的方案数(对 998244353 取模)。
1,2,…,n 的一个排列,是指由 1 到 n 中互不相同的 n 个整数按任意顺序组成的长度为 n 的数组。在排列 a 中,一个循环是指一组两两不同的整数序列 (i1,…,ik),满足 i2=ai1,i3=ai2,…,ik=aik−1,i1=aik。该循环的长度为 k;当且仅当 k≡0(mod3) 时,该长度是 3 的倍数。
输入格式
The first line contains a single integer n (3≤n≤3⋅105, n≡0(mod3)).
The i-th of the next n lines contains two integers xi and yi, representing that the i-th update changes axi to yi.
It is guaranteed that x1,…,xn and y1,…,yn are permutations of 1,2,…,n, i.e. a becomes a permutation of 1,2,…,n after all the updates.
第一行包含一个整数 n(3≤n≤3⋅105,且 n≡0(mod3))。
接下来的 n 行中,第 i 行包含两个整数 xi 和 yi,表示第 i 次更新将 axi 修改为 yi。
保证 x1,…,xn 和 y1,…,yn 均为 1,2,…,n 的排列,即所有更新完成后,数组 a 成为 1,2,…,n 的一个排列。
输出格式
Output n lines: the number of ways (modulo 998244353) after the first 1,2,…,n updates.
输出 n 行:分别表示执行前 1,2,…,n 次更新后,方案数对 998244353 取模的结果。
输入输出样例
输入#1
6 3 2 1 4 4 5 2 6 5 1 6 3
输出#1
32 8 3 2 1 1
输入#2
3 1 1 2 3 3 2
输出#2
0 0 0
输入#3
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
输出#3
671571067 353924552 521242461 678960117 896896000 68992000 6272000 627200 62720 7840 1120 160 32 8 2 1 1 1
说明/提示
In the first sample, for example, after the 3rd update the 3 ways to complete the permutation a=[4,_,2,5,_,_] are as follows:
- [4,1,2,5,6,3]: The only cycle is (145632), with length 6.
- [4,6,2,5,1,3]: The cycles are (145) and (263), with lengths 3 and 3.
- [4,6,2,5,3,1]: The only cycle is (145326), with length 6.
In the second sample, the first update creates a cycle of length 1, so there are no ways to make all cycle lengths a multiple of 3.
在第一个样例中,例如,在第 3 次更新后,完成排列 a=[4,_,2,5,_,_] 的 3 种方式如下:
- [4,1,2,5,6,3]:唯一的循环是 (145632),长度为 6。
- [4,6,2,5,1,3]:循环为 (145) 和 (263),长度分别为 3 和 3。
- [4,6,2,5,3,1]:唯一的循环是 (145326),长度为 6。
在第二个样例中,第一次更新产生了一个长度为 1 的循环,因此不存在使所有循环长度均为 3 的倍数的方案。
输入解题思路,AI测评打分。不知道怎么写?