AT_abc357_e [ABC357E] Reachability in Functional Graph

题目描述

有一个有 $N$ 个顶点和 $N$ 条边的有向图,顶点编号为 $1$ 到 $N$。 每个顶点的出度都是 $1$,从顶点 $i$ 出发的边指向顶点 $a_i$。 请你求出所有满足从顶点 $u$ 可以到达顶点 $v$ 的顶点对 $(u, v)$ 的个数。 这里,从顶点 $u$ 可以到达顶点 $v$,是指存在一个长度为 $K+1$ 的顶点序列 $w_0, w_1, \dots, w_K$,满足以下所有条件。特别地,当 $u = v$ 时,总是可以到达。 - $w_0 = u$ - $w_K = v$ - 对于所有满足 $0 \leq i < K$ 的 $i$,都存在一条从顶点 $w_i$ 指向顶点 $w_{i+1}$ 的边。

输入格式

输入按以下格式从标准输入给出。 > $N$ $a_1$ $a_2$ $\dots$ $a_N$

输出格式

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

说明/提示

## 限制条件 - $1 \leq N \leq 2 \times 10^5$ - $1 \leq a_i \leq N$ - 输入的所有值均为整数 ## 样例解释 1 从顶点 $1$ 可以到达的顶点是顶点 $1, 2$。 从顶点 $2$ 可以到达的顶点是顶点 $1, 2$。 从顶点 $3$ 可以到达的顶点是顶点 $1, 2, 3$。 从顶点 $4$ 只能到达顶点 $4$。 因此,满足条件的顶点对 $(u, v)$ 的个数为 $8$。 注意,从顶点 $4$ 出发的边是自环,即指向顶点 $4$ 自身。 由 ChatGPT 4.1 翻译