滴嘟hia的能指循环¶
预估时间限制:0.5 秒。内存限制:128 MB。
实际时限以标准程序在目标评测环境的最慢用例中位时间乘以 \(2\) ,按 \(0.5\) 秒向上取整。参考环境见评测说明。
背景故事¶
“弟啊!你这样怎么吃啊”
有 \(n\) 个滴嘟hia,编号为 \(1,\ldots,n\) ,每个滴嘟hia都恰好指向一个滴嘟hia。沿着这些指向不断前进,就可能绕成一个环。
请统计所有环上的滴嘟hia共有多少个,每个只计一次。
形式化问题描述¶
给定 \(n\) 个顶点,编号为 \(1,\ldots,n\) .每个顶点 \(i\) 恰好有一条出边,指向 \(d_i\) .
一个环由互不相同的顶点 \(v_1,\ldots,v_k\) 组成,满足 \(d_{v_i}=v_{i+1}\)(\(1\le i<k\))以及 \(d_{v_k}=v_1\) .允许 \(k=1\) ,此时为自环。
求位于至少一个环上的顶点总数,每个顶点只计一次。仅能沿出边走到环、但自身不在环上的顶点不计入。\(n=0\) 时答案为零。
图中的双圆顶点正是环上的顶点。
输入格式¶
第一行一个整数 \(n\) .接下来 \(n\) 行,第 \(i\) 行一个整数 \(d_i\) .
输出格式¶
输出一行一个整数,表示环上的顶点总数。
样例¶
样例 1¶
输入¶
8
1
3
4
2
3
5
2
4
输出¶
4
样例 2¶
输入¶
4
1
2
3
4
输出¶
4
样例 3¶
输入¶
0
输出¶
0
样例解释¶
样例 1 的环为自环 \(1\to1\) 和 \(2\to3\to4\to2\) ,共 \(4\) 个顶点。其余顶点只通向环。样例 2 的每个顶点都有自环。样例 3 是空图。
数据范围与保证¶
对 100% 的数据:\(0\le n\le10^5\) ;对每个存在的顶点,\(1\le d_i\le n\) .
| 分值比例 | 额外条件 |
|---|---|
| 100% | 无额外条件 |