1126. Eulerian Path (25)[欧拉回路]
来源:互联网 发布:java cms垃圾回收 编辑:程序博客网 时间:2024/06/03 13:55
1. 原题:https://www.patest.cn/contests/pat-a-practise/1126
2. 思路:
题意:给出一个图,判断是否欧拉回路。
思路:
其实这题不懂欧拉回路的也没关系,题目已经给出了判断条件。
即:
1.连通图且所有结点的度都是偶数,是欧拉回路。
2.连通图且只有两个点的度是奇数,是半欧拉。
3.剩下的都不是欧拉回路。
根据条件,思路也就有了。
图可以用邻接矩阵或者邻接表表示。
这里用邻接表表示方便些。因为邻接表中的头结点的容量就是度。
首先用dfs判断是否连通。
然后判断度就可以了
已AC。
思路:
其实这题不懂欧拉回路的也没关系,题目已经给出了判断条件。
即:
1.连通图且所有结点的度都是偶数,是欧拉回路。
2.连通图且只有两个点的度是奇数,是半欧拉。
3.剩下的都不是欧拉回路。
根据条件,思路也就有了。
图可以用邻接矩阵或者邻接表表示。
这里用邻接表表示方便些。因为邻接表中的头结点的容量就是度。
首先用dfs判断是否连通。
然后判断度就可以了
已AC。
3. 源码:
#include <iostream>#include <vector>using namespace std;vector< vector<int> > G;//图的邻接表表示法int N;//总结点数int visited[500+5] = { 0 };//判断是否访问过下标表示的结点int cnt = 0;//统计连通图中的结点数void dfs(int start);//递归遍历连通图int main(){//freopen("in.txt", "r", stdin);int M;cin >> N >> M;G.resize(N + 1);for (int i = 0; i < M; i++)//读入数据{int a, b;cin >> a >> b;G[a].push_back(b);G[b].push_back(a);}int oddCnt = 0;//奇数度的结点数目for (int i = 1; i <= N; i++){if (i != 1)cout << ' ';cout << G[i].size();if (G[i].size() % 2 != 0)oddCnt++;}dfs(1);if (cnt == N)//表示连通{if (oddCnt == 0)cout << "\nEulerian" << endl;else if (oddCnt == 2)cout << "\nSemi-Eulerian" << endl;elsecout << "\nNon-Eulerian" << endl;}elsecout << "\nNon-Eulerian" << endl;return 0;}void dfs(int start)//递归遍历连通图{visited[start] = 1;cnt++;for (int i = 0; i < G[start].size(); i++){if (visited[G[start][i]] == 0)dfs(G[start][i]);}return;}
阅读全文
0 0
- 1126. Eulerian Path (25)[欧拉回路]
- 1126. Eulerian Path (25)
- 1126. Eulerian Path (25)
- 1126. Eulerian Path (25)
- 1126. Eulerian Path (25)
- 1126. Eulerian Path (25)
- 1126. Eulerian Path (25)
- 1126. Eulerian Path (25)
- 1126. Eulerian Path (25)
- PAT 1126. Eulerian Path (25)
- PAT_A 1126. Eulerian Path (25)
- PAT 1126. Eulerian Path (25)
- PAT:1126. Eulerian Path (25)
- PAT (Advanced Level) 1126. Eulerian Path (25)
- PAT 1126. Eulerian Path (25)-甲级
- 1126. Eulerian Path (25) PAT 甲级
- PAT甲级 1126. Eulerian Path (25)
- 【PAT】【Advanced Level】1126. Eulerian Path (25)
- 基于深度神经网络技术提高产品生产良品率的研究
- 道路 AND 机器学习 OR 软件工程
- ASP.NET服务器控件
- 2017第八届蓝桥杯决赛之旅
- java 文件File 文件的创建 删去 重命名
- 1126. Eulerian Path (25)[欧拉回路]
- 第十四周算法题
- (1)ffmpeg在linux上的编译
- Android 实现聊天列表
- AGC 015C Nuske vs Phantom Thnook 思维+二维前缀和
- 百度地图--实时显示轨迹
- Dubbo监控中心配置
- dbgview OutputDebugString输出函数
- Redis简单命令