#ARC114B. 特殊子集

特殊子集

特殊子集

时间限制:2s
空间限制:1024MB

题目描述

令 S={1,2,…,N}S=\{1,2,\ldots,N\}。给定一个从 SS 到 SS 的函数 ff,其中 f(i)=fif(i)=f_i。

求满足下列两个条件的非空子集 T⊆ST\subseteq S 的数量,并对 998244353998244353 取模:

  • 对任意 a∈Ta\in T,均有 f(a)∈Tf(a)\in T;
  • 对任意不同的 a,b∈Ta,b\in T,均有 f(a)≠f(b)f(a)\ne f(b)。

输入格式

第一行输入整数 NN。第二行输入 NN 个整数 f1,f2,…,fNf_1,f_2,\ldots,f_N。

输出格式

输出满足条件的非空子集数量对 998244353998244353 取模的结果。

样例输入 1

2
2 1

样例输出 1

1

样例输入 2

2
1 1

样例输出 2

1

样例输入 3

3
1 2 3

样例输出 3

7

数据范围

对于所有数据,1≤N≤2×1051\le N\le2\times10^5,1≤fi≤N1\le f_i\le N。

子任务编号 分值 特殊限制
1 14 N≤20N\le20
2 20 ff 是一个排列
3 36 N≤3000N\le3000
4 30 无特殊限制