#aBC357E. [ABC357E] Reachability in Functional Graph

[ABC357E] Reachability in Functional Graph

AT_abc357_e [ABC357E] Reachability in Functional Graph

题目描述

有一个有 NN 个顶点和 NN 条边的有向图,顶点编号为 11NN
每个顶点的出度都是 11,从顶点 ii 出发的边指向顶点 aia_i
请你求出所有满足从顶点 uu 可以到达顶点 vv 的顶点对 (u,v)(u, v) 的个数。

这里,从顶点 uu 可以到达顶点 vv,是指存在一个长度为 K+1K+1 的顶点序列 w0,w1,,wKw_0, w_1, \dots, w_K,满足以下所有条件。特别地,当 u=vu = v 时,总是可以到达。

  • w0=uw_0 = u
  • wK=vw_K = v
  • 对于所有满足 0i<K0 \leq i < Kii,都存在一条从顶点 wiw_i 指向顶点 wi+1w_{i+1} 的边。

输入格式

输入按以下格式从标准输入给出。

NN a1a_1 a2a_2 \dots aNa_N

输出格式

输出所有满足从顶点 uu 可以到达顶点 vv 的顶点对 (u,v)(u, v) 的个数。

输入输出样例 #1

输入 #1

4
2 1 1 4

输出 #1

8

输入输出样例 #2

输入 #2

5
2 4 3 1 2

输出 #2

14

输入输出样例 #3

输入 #3

10
6 10 4 1 5 9 8 6 5 1

输出 #3

41

说明/提示

限制条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1aiN1 \leq a_i \leq N
  • 输入的所有值均为整数

样例解释 1

从顶点 11 可以到达的顶点是顶点 1,21, 2
从顶点 22 可以到达的顶点是顶点 1,21, 2
从顶点 33 可以到达的顶点是顶点 1,2,31, 2, 3
从顶点 44 只能到达顶点 44
因此,满足条件的顶点对 (u,v)(u, v) 的个数为 88
注意,从顶点 44 出发的边是自环,即指向顶点 44 自身。

由 ChatGPT 4.1 翻译