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

它是关于一些地方(用数字表示)的前两个数字是地方的数量(orio)和匹配的数量(z)。这些地方以某种方式“连接”起来(毫无意义)。您应该会发现有多少地方的连接数少于 2,输出(在本例中为 c)是连接数少于 2 的地方的数量。k 是一个变量,用于临时插入每个数字并加上“看到”的次数。如果它被看到,则意味着它与另一个地方相连。我认为没有更简单的解决方案,但是我同行的一些程序需要更少的时间来运行,这让我很困扰

4

0 回答 0