AT_arc114_b.[ARC114B] Special Subsets

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

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

ff 是一个从 SS 到 SS 的函数,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 取模:

  • 对于所有 a∈Ta \in T,都有 f(a)∈Tf(a) \in T。
  • 对于所有 a,b∈Ta, b \in T,若 a≠ba \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

    1
  • 输入#2

    2
    1 1

    输出#2

    1
  • 输入#3

    3
    1 2 3

    输出#3

    7

说明/提示

限制条件

  • 1≤N≤2×1051 \leq N \leq 2 \times 10^5
  • 1≤fi≤N1 \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),第二个条件总是满足,但根据第一个条件,11 和 22 必须同时包含在 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 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页