数据结构实验之图论八:欧拉回路(DFS/BFS)
2019-08-10 10:11
1036 查看
https://blog.csdn.net/KO812605128/article/details/99093876 欧拉回路(并查集)
数据结构实验之图论八:欧拉回路(DFS?BFS)
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
在哥尼斯堡的一个公园里,有七座桥将普雷格尔河中两个岛及岛与河岸连接起来。
能否走过这样的七座桥,并且每桥只走一次?瑞士数学家欧拉最终解决了这个问题并由此创立了拓扑学。欧拉通过对七桥问题的研究,不仅圆满地回答了哥尼斯堡七桥问题,并证明了更为广泛的有关一笔画的三条结论,人们通常称之为欧拉定理。对于一个连通图,通常把从某结点出发一笔画成所经过的路线叫做欧拉路。人们又通常把一笔画成回到出发点的欧拉路叫做欧拉回路。具有欧拉回路的图叫做欧拉图。
你的任务是:对于给定的一组无向图数据,判断其是否成其为欧拉图?
Input
连续T组数据输入,每组数据第一行给出两个正整数,分别表示结点数目N(1 < N <= 1000)和边数M;随后M行对应M条边,每行给出两个正整数,分别表示该边连通的两个结点的编号,结点从1~N编号。
Output
若为欧拉图输出1,否则输出0。
Sample Input
1
6 10
1 2
2 3
3 1
4 5
5 6
6 4
1 4
1 6
3 4
3 6
Sample Output
1
Hint
如果无向图连通并且所有结点的度都是偶数,则存在欧拉回路,否则不存在。
#include<bits/stdc++.h> using namespace std; int mmap[1010][1010]; int vis[1010]; int num[1010]; int n, m, sum; void dfs(int x) { for(int i = 1; i <= n; i++) { if(!vis[i] && mmap[x][i]) { vis[i] = 1; sum++; dfs(i); } } } void bfs(int x) { queue<int >q; q.push(x); vis[x] = 1; while(!q.empty()) { x = q.front(); q.pop(); for(int i = 1; i <= n; i++) { if(!vis[i] && mmap[x][i]) { q.push(i); sum++; vis[i] = 1; } } } } int main() { int u, v, T, flag; cin>>T; while(T--) { cin>>n>>m; sum = 1; flag = 1; memset(vis, 0, sizeof(vis)); memset(mmap, 0, sizeof(mmap)); memset(num, 0, sizeof(num)); while(m--) { cin>>u>>v; mmap[u][v] = mmap[v][u] = 1; num[u]++; num[v]++; } vis[1] = 1; //dfs(1); bfs(1); for(int i = 1; i <= n; i++) { if(num[i] % 2 == 1) { flag = 0; break; } } if(sum == n && flag == 1) cout<<"1"<<endl; else cout<<"0"<<endl; } return 0; }
相关文章推荐
- SDUT_2015寒假集训_BFS&DFS_A-数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- 3364 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路
- SDUT-数据结构实验之图论八:欧拉回路
- SDUTOJ(3364)数据结构实验之图论八:欧拉回路
- 数据结构实验之图论三:判断可达性(BFS算法)
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论四:迷宫探索(邻接表与DFS)
- SDUT 3361-数据结构实验之图论四:迷宫探索(dfs)
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论八:欧拉回路(并查集+DFS+BFS)
- SDUTACM 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
- 数据结构实验之图论八:欧拉回路
- [SDUT](3361) 数据结构实验之图论四:迷宫探索 ---DFS(图)
- 数据结构实验之图论八:欧拉回路
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历 (BFS)