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;
}
                    
                

    
                
            
        
浙公网安备 33010602011771号