CF1740F.Conditional Mix
省选/NOI-
通过率:0%
时间限制:2.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Pak Chanek is given an array a of n integers. For each i (1≤i≤n), Pak Chanek will write the one-element set ai on a whiteboard.
After that, in one operation, Pak Chanek may do the following:
- Choose two different sets S and T on the whiteboard such that S∩T=∅ (S and T do not have any common elements).
- Erase S and T from the whiteboard and write S∪T (the union of S and T) onto the whiteboard.
After performing zero or more operations, Pak Chanek will construct a multiset M containing the sizes of all sets written on the whiteboard. In other words, each element in M corresponds to the size of a set after the operations.
How many distinct† multisets M can be created by this process? Since the answer may be large, output it modulo 998244353.
† Multisets B and C are different if and only if there exists a value k such that the number of elements with value k in B is different than the number of elements with value k in C.
Pak Chanek 被给定一个包含 n 个整数的数组 a。对于每个 i(1≤i≤n),Pak Chanek 将在黑板上写下仅含一个元素的集合 {ai}。
此后,每次操作中,Pak Chanek 可执行以下步骤:
- 在黑板上选择两个互不相交的集合 S 和 T(即满足 S∩T=∅);
- 将 S 和 T 从黑板上擦除,并将它们的并集 S∪T 写回黑板。
在执行零次或多次上述操作后,Pak Chanek 将构造一个多重集 M,其中包含黑板上所有剩余集合的大小。换言之,M 中的每个元素对应一次操作结束后某个集合的大小。
通过该过程,总共能构造出多少个互不相同† 的多重集 M?由于答案可能很大,请对 998244353 取模输出。
† 多重集 B 与 C 被视为不同,当且仅当存在某个值 k,使得 k 在 B 中的出现次数与在 C 中的出现次数不同。
输入格式
The first line contains a single integer n (1≤n≤2000).
The second line contains n integers a1,a2,…,an (1≤ai≤n).
第一行包含一个整数 n(1≤n≤2000)。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤n)。
输出格式
Output the number of distinct multisets M modulo 998244353.
输出不同的多重集 M 的数量,对 998244353 取模。
输入输出样例
输入#1
6 1 1 2 1 4 3
输出#1
7
输入#2
7 3 5 4 3 7 4 5
输出#2
11
说明/提示
In the first example, the possible multisets M are 1,1,1,1,1,1, 1,1,1,1,2, 1,1,1,3, 1,1,2,2, 1,1,4, 1,2,3, and 2,2,2.
As an example, let's consider a possible sequence of operations.
- In the beginning, the sets are 1, 1, 2, 1, 4, and 3.
- Do an operation on sets 1 and 3. Now, the sets are 1, 1, 2, 4, and 1,3.
- Do an operation on sets 2 and 4. Now, the sets are 1, 1, 1,3, and 2,4.
- Do an operation on sets 1,3 and 2,4. Now, the sets are 1, 1, and 1,2,3,4.
- The multiset M that is constructed is 1,1,4.
在第一个例子中,可能的多重集 M 有:1,1,1,1,1,1、1,1,1,1,2、1,1,1,3、1,1,2,2、1,1,4、1,2,3 和 2,2,2。
举个例子,我们考虑一种可能的操作序列:
- 初始时,各集合为 1、1、2、1、4 和 3。
- 对集合 1 和 3 执行一次操作。此时各集合变为 1、1、2、4 和 1,3。
- 对集合 2 和 4 执行一次操作。此时各集合变为 1、1、1,3 和 2,4。
- 对集合 1,3 和 2,4 执行一次操作。此时各集合变为 1、1 和 1,2,3,4。
- 最终构造出的多重集 M 为 1,1,4。
输入解题思路,AI测评打分。不知道怎么写?