[语言月赛 202307] 团伙首领
题目描述
某 E 正在机房值班,小朋友吵得她头晕脑胀,她将 N N N 名吵闹的小朋友带出了机房,依次编号为 1 , 2 , ⋯ , N 1,2,\cdots,N 1,2,⋯,N。
某 E 发现,这些小朋友形成了若干个小团伙,每个小朋友属于且只属于一个小团伙。她要求每一名小朋友指出自己所在小团伙的首领编号,第 i i i 名小朋友指认的首领编号为 S i S_i Si。
假定所有小朋友都没有说谎,请问这 N N N 名小朋友中一共形成了多少个小团伙?
输入格式
输入共两行。
输入的第一行为一个正整数 N N N。
输入的第二行为 N N N 个正整数,第 i i i 个为 S i S_i Si。
输出格式
输出一行一个整数,代表机房里小团体的数目。
样例 #1
样例输入 #1
5
1 1 3 4 1
样例输出 #1
3
提示
数据规模与约定
- 对于 30 % 30\% 30% 的测试数据,每个小团体有且只有一个人。
- 对于 100 % 100\% 100% 的测试数据, N ≤ 1 0 6 N \le10^6 N≤106, 1 ≤ S i ≤ N 1 \leq S_i \leq N 1≤Si≤N。数据保证有解且合法,即每个小朋友都真实地指认了 ta 所在团伙的首领。
Scratch实现
后续
接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容