C++ 我已经解决了泛希腊竞赛三个阶段中的第一阶段(现在已经结束)

C++ 我已经解决了泛希腊竞赛三个阶段中的第一阶段(现在已经结束),c++,code-complexity,C++,Code Complexity,我已经解决了泛希腊竞争三个阶段中的第一个阶段(现在已经结束),但我想知道是否有更简单的复杂度算法 7.9 5.7 4.2 36 2 3 17 6.2 4.6 15 34 intmain() { ifstream in(“穹顶内”); 流出(“圆顶流出”); 国际奥里奥,z; 在>>奥利奥; 在>>z; 内部圆顶[orio]; 对于(int i=0;ik; 圆顶[k-1]++; } int c=0; 对于(int i=0;iYay!你做到了!Gratz!太酷了!我想。你能更清楚地解释一

我已经解决了泛希腊竞争三个阶段中的第一个阶段(现在已经结束),但我想知道是否有更简单的复杂度算法 7.9

5.7

4.2

36

2 3

17

6.2

4.6

15

34

intmain()
{    
ifstream in(“穹顶内”);
流出(“圆顶流出”);
国际奥里奥,z;
在>>奥利奥;
在>>z;
内部圆顶[orio];
对于(int i=0;ik;
圆顶[k-1]++;
}  
int c=0;

对于(int i=0;iYay!你做到了!Gratz!太酷了!我想。你能更清楚地解释一下算法应该如何工作吗?我不明白。xD是的,我想!它非常简单。每个城市都可以说,从1到“orio”(第一个数字)的数字与另一个城市连接。连接的数量是“z”(第二个数字)。您应该查找并打印至少有两个城市没有连接。当我读取输入文件时,我会将数字临时“保存”到k中。然后我做圆顶[k-1]+;。为什么是k-1而不仅仅是k?因为数组从零开始,城市形成1。我做+1数组的那个位置,因为我“看到”这座城市与另一座城市相连。然后扫描阵列,看看哪个连接少于2。问题到底是什么?你是否担心你的算法与同龄人的代码相比“慢”了多少?你的代码比他们的代码慢多少?我建议你自己计时。计时代码是在你的belt,你和你的同龄人可以一起学习。不仅如此,你还可以将代码运行X次,并生成任意数量的代码。我敢打赌,0004毫秒的差异是由上下文切换造成的。
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;
}