开始的时候忘了要求是连通图的前提,14/25.
第一次加判断连通性,因为形参没有传出来,一种错误
以下代码是24/25 有一个点没有通过
//
// Created by ZhangXiaoYu@Ceres_lab on 2020/9/1.
//
#include <iostream>
using namespace std;
#include <vector>
#include <map>
//不要忘了前提要是一个连通图
int ans[520];
int m,n;
int g[520][520];
int dep =0;
int vis[520];
void dfs(int root,int depth){
vis[root] =1;
dep++;
for(int i=1;i<=n;i++){
if(vis[i]==0&&g[root][i]==1)dfs(i,depth++);
}
}
int main(){
cin>>n>>m;
int a,b;
for(int i=0;i<m;i++){
cin>>a>>b;
g[a][b]=g[b][a]=1;
ans[a]++;
ans[b]++;
}
dfs(1,1);
cout<<ans[1];
int odd = 0;
for(int i=2;i<n+1;i++){
printf(" %d",ans[i]);
if(ans[i]%2==1)odd++;
}
cout<<endl;
if(odd==0 && dep == n)cout<<"Eulerian"<<endl;
else if(odd==2 &&dep ==n)cout<<"Semi-Eulerian"<<endl;
else cout<<"Non-Eulerian"<<endl;
}