#include<bits/stdc++.h>
using namespace std;
int n,m;
const int maxn=1e3+5;
const int MAX=1e5+6;
int degree[maxn];
int head[maxn];
int vis[maxn];
struct {
int v,next;
}e[MAX<<1];
int cnt=0;
void add(int u,int v){
e[cnt].v=v;
e[cnt].next=head[u];
head[u]=cnt++;
}
void dfs(int k){
for(int i=head[k];i!=-1;i=e[i].next){
int v=e[i].v;
if(!vis[v]){
vis[v]=1;
dfs(v);
}
}
}
int main(){
cin>>n>>m;
memset(head,-1,sizeof head);
for(int i=1;i<=m;i++){
int a,b;
cin>>a>>b;
add(a,b);
add(b,a);
degree[a]++;
degree[b]++;
}
dfs(1);
bool flag = true;
for(int i=1;i<=n;i++) {
if(degree[i]%2==1||vis[i]!=1){
flag=false;
break;
}
}
if(flag) cout<<1;
else cout<<0;
}
计蒜客 欧拉回路
最新推荐文章于 2024-05-21 23:16:53 发布