ios::sync_with_stdio;
cin.tie(0);
cout.tie(0);
加速 輸入及輸出才不會TLE
開個for讀數字
開個陣列紀錄及存數字
紀錄有沒有相同的數字開另一個變數去數有己的群體每次有一個就加1 開陣列在外面 先用if 判斷如果(沒有符合小群體的要一直檢查) ==> 在while裡面因為沒有開始得條件
請自己努力想~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include<iostream>
using namespace std;
int a[50001], flag[50001];
int main()
{
ios::sync_with_stdio;
cin.tie(0);
cout.tie(0);
int n, ans=0, x=0;
cin >> n;
for(int i=0;i<n;++i)
{
cin >> a[i];
x=a[i];
}
for(int i=0;i<n;++i)
{
if(flag[i]==1)
continue;
while(true)
{
x=a[x];
flag[x]=1;
}
++ans;
}
cout << ans;
}