#27349: 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:18

#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