acm1878欧拉回路
2024-09-27 12:26:38
欧拉回路解释
对于本题我们只要把每个点的度进行记录,判断是否存在奇数度的点,如果是就可以判断不是欧拉回路,如果不是就在一个点出发,进行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 ;
}
最新文章
- UNITY3d在移动设备上的一些优化实战(一)-概述
- 使用Architecture Explorer分析应用程序及使用层次图
- Git之基本命令
- google maps api申请的问题
- Linux(ubuntu)下安装JDK、Tomcat
- redis php 实例
- Android(java)学习笔记169:Activity中的onCreate()方法分析
- python运维开发之第四天
- WustOJ 1575 Gingers and Mints(快速幂 + dfs )
- hdu 2850 Load Balancing (优先队列 + 贪心)
- mybatis学习笔记二(接口注解)
- 如何使用webpack优化首屏渲染时间
- python反编译工具
- Spring+Mybatis+SpringMVC+Atomikos多数据源共存+不同数据库事物一致性处理
- 减小ipa包大小
- ajax请求正常,返回json格式,后台没问题,浏览器500
- swift 关于didSet 和willSet赋值的注意点
- [转]vi 常用命令行
- [NL系列] RNN &; LSTM 网络结构及应用
- 探索photo-sphere-viewer全景插件
热门文章
- 数据库Mysql的学习(五)-运算符与函数
- 从零开始的Python学习Episode 1
- TensorFlow入门之MNIST最佳实践-深度学习
- POJ 3028 Shoot-out(概率DP)
- codeforces 303C. Minimum Modular(数论+暴力+剪枝+贪心)
- POJ 2987 Firing(最大流最小割の最大权闭合图)
- Python中__name__属性的妙用
- 什么是Frozen Binary
- Agri-Net(最小生成树)
- 软件工程 作业part1