欧拉回路解释

对于本题我们只要把每个点的度进行记录,判断是否存在奇数度的点,如果是就可以判断不是欧拉回路,如果不是就在一个点出发,进行dfs搜索,

看能否走到起点,因为对于欧拉回路是一个闭合的回路,无论在哪个点出发都应当可以走回起点,所以一次性遍历必将经过每个点,如果出现没有

走过的点,则不是欧拉回路。

 #include<iostream>
#include<cstring>
using namespace std;
const int maxn=;
int degree[maxn];
int vis[maxn];
int maze[maxn][maxn];
int n,m;
void dfs(int i)
{
vis[i]=;
for(int j=;j<=n;j++)
{
if(!vis[j]&&maze[i][j])
{
dfs(j);
}
}
return;
}
int main()
{ int a,b;
while(cin>>n&&n)
{
bool flag=false;
cin>>m;
memset(degree,,sizeof(degree));
memset(maze,,sizeof(maze));
memset(vis,,sizeof(vis));
for(int i=;i<=m;i++)
{
cin>>a>>b;
maze[a][b]=maze[b][a]=;
degree[a]++;
degree[b]++;
}
for(int i=;i<=n;i++)
{
if(degree[i]%==)
flag=true;
}
if(flag)
{
cout<<<<endl;
continue;
}
int p=;
for(int i=;i<=n;i++)
{
if(!vis[i])
{
p++;
dfs(i);
}
}
if(p==)cout<<<<endl;
else cout<<<<endl;
}
return ;
}

最新文章

  1. UNITY3d在移动设备上的一些优化实战(一)-概述
  2. 使用Architecture Explorer分析应用程序及使用层次图
  3. Git之基本命令
  4. google maps api申请的问题
  5. Linux(ubuntu)下安装JDK、Tomcat
  6. redis php 实例
  7. Android(java)学习笔记169:Activity中的onCreate()方法分析
  8. python运维开发之第四天
  9. WustOJ 1575 Gingers and Mints(快速幂 + dfs )
  10. hdu 2850 Load Balancing (优先队列 + 贪心)
  11. mybatis学习笔记二(接口注解)
  12. 如何使用webpack优化首屏渲染时间
  13. python反编译工具
  14. Spring+Mybatis+SpringMVC+Atomikos多数据源共存+不同数据库事物一致性处理
  15. 减小ipa包大小
  16. ajax请求正常,返回json格式,后台没问题,浏览器500
  17. swift 关于didSet 和willSet赋值的注意点
  18. [转]vi 常用命令行
  19. [NL系列] RNN &amp; LSTM 网络结构及应用
  20. 探索photo-sphere-viewer全景插件

热门文章

  1. 数据库Mysql的学习(五)-运算符与函数
  2. 从零开始的Python学习Episode 1
  3. TensorFlow入门之MNIST最佳实践-深度学习
  4. POJ 3028 Shoot-out(概率DP)
  5. codeforces 303C. Minimum Modular(数论+暴力+剪枝+贪心)
  6. POJ 2987 Firing(最大流最小割の最大权闭合图)
  7. Python中__name__属性的妙用
  8. 什么是Frozen Binary
  9. Agri-Net(最小生成树)
  10. 软件工程 作业part1