1

私は汎ヘレニック競争の 3 つのフェーズの 1 つ目を解決しました (現在は終了しています)。しかし、より単純な複雑さのアルゴリズムがあるかどうかを知りたいです 7 9

5 7

4 2

3 6

2 3

1 7

6 2

4 6

1 5

3 4

int main()    
{    
    ifstream in("domes.in");    
    ofstream out("domes.out");    

    int orio,z;
    in>>orio;  
    in>>z;    
    int domes[orio];    

    for(int i=0;i<orio;i++){domes[i]=0;}
    int k;  
    for(int i=0;i<2*z;i++)  
    {
        in>>k;
        domes[k-1]++;
    }  

    int c=0;  

    for(int i=0;i<orio;i++)  
    {  
        if(domes[i]<2)
            c++;
    }  
    out<<c;
    return 0;
}  

最初の 2 つの数字は、場所の数 (orio) と一致した数 (z) です。場所はなんとなく(無意味に)「つながっている」。接続数が 2 未満の場所の数を調べる必要があります。出力 (この場合は c) は、接続数が 2 未満の場所の数です。k は、各数値を挿入するために一時的に使用される変数であり、「見られた」回数を加算します。見えているということは、別の場所につながっているということです。もっと簡単な解決策はないと思いますが、同僚のプログラムのいくつかは実行に時間がかからず、それが私を悩ませました

4

0 に答える 0