#arc114b. [arc114_b]Special Subsets

[arc114_b]Special Subsets

题目描述

给定一个由 11NN 的所有整数组成的集合 SS

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

找到满足以下两个条件的非空子集 TT 的数量(对 998244353998244353 取模):

  • 对于每个 ainTa \\in Tf(a)inTf(a) \\in T
  • 对于每对 a,binTa, b \\in T,如果 aneqba \\neq b,则 f(a)neqf(b)f(a) \\neq f(b)

约束条件

  • 1leqNleq2times1051 \\leq N \\leq 2 \\times 10^5
  • 1leqfileqN1 \\leq f_i \\leq N
  • 输入中的所有值都是整数。

输入

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

NN f1f_1 f2f_2 ldots\\ldots fNf_N

输出

打印满足条件的非空子集 TT 的数量,对 998244353998244353 取模。

示例输入1

2
2 1

示例输出1

1

我们有 f(1)=2,f(2)=1f(1) = 2, f(2) = 1。由于 f(1)neqf(2)f(1) \\neq f(2),第二个条件总是满足的,但是第一个条件要求 TT 同时包含 1122

示例输入2

2
1 1

示例输出2

1

我们有 f(1)=f(2)=1f(1) = f(2) = 1。第一个条件要求 TT 包含 11,但是第二个条件禁止 TT 包含 22

示例输入3

3
1 2 3

示例输出3

7

我们有 f(1)=1,f(2)=2,f(3)=3f(1) = 1, f(2) = 2, f(3) = 3。两个条件总是满足的,所以所有非空子集 TT 都满足条件。