#ATarc114b. [ARC114B] Special Subsets

[ARC114B] Special Subsets

题目描述

SS 为由 11NN 的所有整数构成的集合。

ff 是一个从 SSSS 的函数,f(1), f(2), , f(N)f(1),\ f(2),\ \cdots,\ f(N) 的值分别为 f1, f2, , fNf_1,\ f_2,\ \cdots,\ f_N

请计算满足以下两个条件的 SS 的非空子集 TT 的个数,并将结果对 998244353998244353 取模:

  • 对于所有 aTa \in T,都有 f(a)Tf(a) \in T
  • 对于所有 a,bTa, b \in T,若 aba \neq b,则 f(a)f(b)f(a) \neq f(b)

输入格式

输入以如下格式从标准输入给出:

NN f1f_1 f2f_2 \ldots fNf_N

输出格式

输出满足条件的 SS 的非空子集的个数,对 998244353998244353 取模后的结果。

样例 1

输入

2
2 1

输出

1

样例 2

输入

2
1 1

输出

1

样例 3

输入

3
1 2 3

输出

7

说明/提示

限制条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1fiN1 \leq f_i \leq N
  • 输入均为整数

样例解释 1

f(1)=2, f(2)=1f(1) = 2,\ f(2) = 1。由于 f(1)f(2)f(1) \neq f(2),第二个条件总是满足,但根据第一个条件,1122 必须同时包含在 TT 中。

样例解释 2

f(1)=f(2)=1f(1) = f(2) = 1。由于第一个条件,11 必须属于 TT,而根据第二个条件,22 不能属于 TT

样例解释 3

f(1)=1, f(2)=2, f(3)=3f(1) = 1,\ f(2) = 2,\ f(3) = 3。第一个和第二个条件始终满足,因此 SS 的所有非空子集都满足条件。

由 ChatGPT 4.1 翻译