#34804: 求大神解,自己測正確,測試執行就錯誤TT


130433@csc.pjhs.tyc.edu.tw (d4c)

學校 : 桃園縣立平鎮高級中學
編號 : 231090
來源 : [163.30.123.25]
最後登入時間 :
2023-09-19 08:48:43
c291. APCS 2017-0304-2小群體 -- 2017年3月APCS | From: [101.136.183.211] | 發表日期 : 2023-04-17 23:52

#include <iostream>
using namespace std;
int main()
{
    int n;
    cin >> n;
    int a[n],b[n];
    for(int i=0;i<n;i++)
    {
        cin >> b[i];
        a[i]=i;
    }
    int t=n+1,r,s;
    for(int o=0;o<n;o++)
    {
    r=o;
    t=n+1;
    if(a[o]!=-1)
    {
    while(n>0)
    {
        if(a[o]==t)
        {
        a[o]=-1;
        b[r]=-1;
        break;
        }
        for(int i=0;i<n;i++)
        {
            if(b[r]==a[i])
            {
                b[r]=-1;
                a[i]=-1;
                t=b[i];
                r=i;
            }
        }
    }
    s++;
    }
    }
    cout << endl << s << endl;
}

 
#34805: Re: 求大神解,自己測正確,測試執行就錯誤TT


130433@csc.pjhs.tyc.edu.tw (d4c)

學校 : 桃園縣立平鎮高級中學
編號 : 231090
來源 : [163.30.123.25]
最後登入時間 :
2023-09-19 08:48:43
c291. APCS 2017-0304-2小群體 -- 2017年3月APCS | From: [101.136.183.211] | 發表日期 : 2023-04-18 00:07

#include
using namespace std;
int main()
{
    int n;
    cin >> n;
    int a[n],b[n];
    for(int i=0;i    {
        cin >> b[i];
        a[i]=i;
    }
    int t=n+1,r,s;
    for(int o=0;o    {
    r=o;
    t=n+1;
    if(a[o]!=-1)
    {
    while(n>0)
    {
        if(a[o]==t)
        {
        a[o]=-1;
        b[r]=-1;
        break;
        }
        for(int i=0;i        {
            if(b[r]==a[i])
            {
                b[r]=-1;
                a[i]=-1;
                t=b[i];
                r=i;
            }
        }
    }
    s++;
    }
    }
    cout << endl << s << endl;
}

#include <iostream>
using namespace std;
int main()
{
    int n,u=0;
    cin >> n;
    int a[n],b[n];
    for(int i=0;i<n;i++)
    {
        a[i]=i;
        cin >> b[i];
    }
    int t=n+1,r,s;
    for(int o=0;o<n;o++)
    {
    r=o;
    t=n+1;
    if(a[o]!=-1)
    {
    while(n>0)
    {
        if(a[o]==t)
        {
        a[o]=-1;
        b[r]=-1;
        break;
        }
        for(int i=0;i<n;i++)
        {
            if(b[r]==a[i])
            {
                b[r]=-1;
                a[i]=-1;
                t=b[i];
                r=i;
            }
        }
    }
    s++;
    }
    }
    cout << endl << s << endl;
    return 0;
}


 
#34819: Re: 求大神解,自己測正確,測試執行就錯誤TT


alex950301 (alex0301)

學校 : 新北市立新莊高級中學
編號 : 141423
來源 : [61.64.1.159]
最後登入時間 :
2024-05-03 23:38:53
c291. APCS 2017-0304-2小群體 -- 2017年3月APCS | From: [61.64.1.159] | 發表日期 : 2023-04-19 01:45

你的 t 和 n 好像是錯的,從頭到尾都沒有變。

這題是需要找出有幾個群體,最差的情況就是有n個群體,所以可以從先用一個 i ~ n 的迴圈

接下來開一個陣列紀錄被訪問過的值,以防下次再走到,當小群體被走完就換下一個,就可以找出群體個數了~

 

 

可以在多想一下,也附上AC程式碼 :

 

 
ZeroJudge Forum