数据结构实验之图论八:欧拉回路
来源:互联网 发布:php 字节数组转字符串 编辑:程序博客网 时间:2024/06/05 08:34
数据结构实验之图论八:欧拉回路
Problem Description
在哥尼斯堡的一个公园里,有七座桥将普雷格尔河中两个岛及岛与河岸连接起来。
能否走过这样的七座桥,并且每桥只走一次?瑞士数学家欧拉最终解决了这个问题并由此创立了拓扑学。欧拉通过对七桥问题的研究,不仅圆满地回答了哥尼斯堡七桥问题,并证明了更为广泛的有关一笔画的三条结论,人们通常称之为欧拉定理。对于一个连通图,通常把从某结点出发一笔画成所经过的路线叫做欧拉路。人们又通常把一笔画成回到出发点的欧拉路叫做欧拉回路。具有欧拉回路的图叫做欧拉图。
你的任务是:对于给定的一组无向图数据,判断其是否成其为欧拉图?
Input
Output
Example Input
16 101 22 33 14 55 66 41 41 63 43 6
Example Output
1
Hint
Author
xam
#include <iostream>
#include <cstring>
#define MAX 0x3f3f3f3f
using namespace std;
int map[10050][10050];
int vis[10050];
int du[10050];
int n,m,flag,sum;
void dfs(int k)
{
vis[k]=1;
sum++;
int i;
for(i=1;i<=n;i++)
{
if(map[i][k]==1&&vis[i]==0)
{
dfs(i);
}
}
}
int main()
{
int i;
int a,b,t;
cin>>t;
while(t--)
{
memset(map,0,sizeof(map));
memset(vis,0,sizeof(vis));
memset(du,0,sizeof(du));
cin>>n>>m;
sum=0;
for(i=1;i<=m;i++)
{
cin>>a>>b;
map[a][b]=map[b][a]=1;
du[a]++;
du[b]++;
}
dfs(1);
for(i=1;i<=n;i++)
{
if(du[i]%2==1)
{
break;
}
}
if(i==n+1&&sum==n)
cout<<"1"<<endl;
else
cout<<"0"<<endl;
}
return 0;
}
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- linux进程控制编程
- 欢迎使用CSDN-markdown编辑器
- git版本回退
- 函数递归
- 快速幂的算法理解
- 数据结构实验之图论八:欧拉回路
- 抽象工厂模式
- hibernate多表查询返回的集合映射成自定义对象
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListene解决办法
- 异常处理课堂练习1
- java详解 --- 构造方法和static关键字
- 使用you-get进行视频爬取
- Maven 浅谈
- pat 乙级 1008. 数组元素循环右移问题 (20)