题意:告诉你欧拉电路和欧拉环的定义然后给你一个图问你他是不是欧拉回路。
#include<stdio.h> #include<iostream> #include<string> #include<vector> #include<string.h> #include<algorithm> using namespace std; #define N 100005 int i, j, k, n; vector<vector<int> >v; vector<bool>visit; int cnt = 0; void dfs(int index) { visit[index] = true; cnt++; for (int i = 0; i < v[index].size(); i++) if (visit[v[index][i]] == false) dfs(v[index][i]); } int main() { int n, m, i, j, a, b,ans=0; scanf("%d %d", &n, &m); v.resize(n + 1); visit.resize(n + 1); for (int i = 0; i < m; i++) { scanf("%d%d", &a, &b); v[a].push_back(b); v[b].push_back(a); } for (int i = 1; i <= n; i++) { if (i != 1) printf(" "); printf("%d", v[i].size()); if (v[i].size() % 2 == 0) ans++; } printf("\n"); dfs(1); if (ans == n && cnt == n) printf("Eulerian\n"); else if (ans == n - 2 && cnt == n) printf("Semi-Eulerian\n"); else printf("Non-Eulerian\n"); return 0; }