HDOJ2270(How Many Friends Will Be Together With You)
#include <iostream>
using namespace std;
const int MAX = 1000005;
int fr[MAX];
int main()
{
int n, i, tt, sum;
while(cin>>n)
{
for(i = 1; i <= n; i++)
fr[i] = i;//初始化,一开始每个都是独立的,并无朋友
//下标表示第i个人,后一个i表示第i个人属于i集合
for(i = 1; i <= n; i++)
{
cin>>tt;
fr[tt] = fr[i];
//i找tt作朋友,tt并入i所在的集合
}
sum = 0;
for(i = 2; i <= n; i++)
if(fr[i] == fr[1])
sum++;
cout<<sum<<endl;
}
return 0;
}
using namespace std;
const int MAX = 1000005;
int fr[MAX];
int main()
{
int n, i, tt, sum;
while(cin>>n)
{
for(i = 1; i <= n; i++)
fr[i] = i;//初始化,一开始每个都是独立的,并无朋友
//下标表示第i个人,后一个i表示第i个人属于i集合
for(i = 1; i <= n; i++)
{
cin>>tt;
fr[tt] = fr[i];
//i找tt作朋友,tt并入i所在的集合
}
sum = 0;
for(i = 2; i <= n; i++)
if(fr[i] == fr[1])
sum++;
cout<<sum<<endl;
}
return 0;
}