#5115. Reachability in Functional Graph

0

Reachability in Functional Graph

Reachability in Functional Graph

题目描述

有一个有向图,包含编号为 11 到 NN 的 NN 个顶点和 NN 条边。
每个顶点的出度都是 11,并且从顶点 ii 出发的边指向顶点 aia_i.
计算顶点对 (u,v)(u, v) 的数量,使得顶点 vv 可以从顶点 uu 到达。 这里,当存在满足以下条件的长度为 K+1K+1 的顶点序列 w0,w1,…,wKw_0, w_1, \dots, w_K 时,称顶点 vv 可以从顶点 uu 到达。特别地,如果 u=vu = v,则总是可达的。

w0=uw_0 = u。 wK=vw_K = v。 对于每个 0≤i<K0 \leq i \lt K,存在一条从顶点 wiw_i 到顶点 wi+1w_{i+1} 的边。

输入格式

输入按下述格式从标准输入给出: NN a1a_1 a2a_2 …\dots aNa_N

输出格式

打印顶点对 (u,v)(u, v) 的数量,使得顶点 vv 可以从顶点 uu 到达。

4
2 1 1 4
8
5
2 4 3 1 2
14
10
6 10 4 1 5 9 8 6 5 1
41

提示

1≤N≤2×1051 \leq N \leq 2 \times 10^5 1≤ai≤N1 \leq a_i \leq N 所有输入值均为整数。从顶点 11 可到达的顶点是顶点 1,21, 2.
从顶点 22 可到达的顶点是顶点 1,21, 2.
从顶点 33 可到达的顶点是顶点 1,2,31, 2, 3.
从顶点 44 可到达的顶点是顶点 44.
因此,使得顶点 vv 可以从顶点 uu 到达的顶点对 (u,v)(u, v) 的数量是 88.
注意,顶点 44 的边是一个自环,即指向它自身的边。

标签: AtCoder|abc357E

来源

AtCoder|abc357E