1126 Eulerian Path (25 分)难度: 一般 / 欧拉图的判定

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1126 Eulerian Path (25 分)难度: 一般 / 欧拉图的判定相关的知识,希望对你有一定的参考价值。


https://pintia.cn/problem-sets/994805342720868352/problems/994805349851185152
先判断图是否是联通的,可以用并查集,如果连通块的个数为1,那么就是联通的。
剩下的根据题意判断度数即可。

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int d[N],p[N],n,m;
int cnt;
int find(int x)

    if(x!=p[x]) p[x]=find(p[x]);
    return p[x];

int main(void)

    cin>>n>>m;
    int s=n;
    for(int i=1;i<=n;i++) p[i]=i;
    for(int i=0;i<m;i++)
    
        int a,b; cin>>a>>b;
        d[a]++,d[b]++;
        if(find(a)!=find(b)) p[find(a)]=find(b),s--;
    
    for(int i=1;i<=n;i++) 
    
        cout<<d[i];
        if(i!=n) cout<<" ";
        if(d[i]%2) cnt++;
    
    cout<<endl;
    if(!cnt&&s==1) puts("Eulerian");
    else if(cnt==2&&s==1) puts("Semi-Eulerian");
    else puts("Non-Eulerian");
    return 0;

以上是关于1126 Eulerian Path (25 分)难度: 一般 / 欧拉图的判定的主要内容,如果未能解决你的问题,请参考以下文章

1126 Eulerian Path (25 分)难度: 一般 / 欧拉图的判定

PAT 1126 Eulerian Path

PAT_A1126#Eulerian Path

1126. Eulerian Path (25)

PAT Advanced 1126 Eulerian Path (25) [连通图,欧拉路径,欧拉回路,欧拉图]

1126 Eulerian Path