#27348: C++寫法,包含完整程式碼詳細說明


linlin.hugo@gmail.com (鯊蝦鯊蝦)

學校 : 國立嘉義高級中學
編號 : 160541
來源 : [220.143.17.231]
最後登入時間 :
2023-06-24 14:20:55
c291. APCS 2017-0304-2小群體 -- 2017年3月APCS | From: [218.164.212.71] | 發表日期 : 2021-09-25 16:12

#include<bits/stdc++.h>//讀取萬能標頭檔

using namespace std;

int main()//建立主函式main()

{

    ios_base::sync_with_stdio(false);//IO加速

    cin.tie(0);//IO加速

    int n;

    cin>>n;

    int f[n];//設定含n項的陣列f[n]

    for(int i=0;i<n;i++)//輸入陣列f[n]

        cin>>f[i];

    int count=0;//count為小群體的數量

    for(int i=0;i<n;i++)//將每個人作為小群體檢驗的開頭進行檢驗

    {

        if(f[i]==n+1)//如果f[i]==n+1表示已經被分進小群體了,進入下一次for迴圈

            continue;

        int j=i,temp;//設定j=i和暫存用變數temp

        do{

            temp=f[j];//暫存j的朋友

            f[j]=n+1;//將j的朋友標示為已加入小群體

            j=temp;//讓下一個受測者變成原本j的朋友

        }while(j!=i);//只要下一個受測者不是第一個受測者就再次執行do while迴圈

        count+=1;//完成標記一個小團體,小團體數量+1

    }

    cout<<count<<'\n'<<flush;//輸出結果,並以換行字元做結尾

    return(0);//輸出0給主函式main(),表示程式正常執行

}

 

 
ZeroJudge Forum