PAT (Advanced Level) Practice - 1126 Eulerian Path(25 分)
发布日期:2021-06-30 23:42:56 浏览次数:2 分类:技术文章

本文共 574 字,大约阅读时间需要 1 分钟。

题目链接:

 

题目大意:如果一个连通图的所有结点的度都是偶数,那么它就是Eulerian,如果除了两个结点的度是奇数其他都是偶数,那么它就是Semi-Eulerian,否则就是Non-Eulerian。

 

解题思路:用邻接表存储图,判断每个结点的度【即:每个结点i的v[i].size()】是多少即可得到最终结果~注意:图必须是连通图,所以要用一个深搜判断一下连通性,从结点1开始深搜,如果最后发现统计的连通结点个数cnt != n说明是不是连通图,要输出Non-Eulerian。

 

AC 代码

#include
#include
#define mem(a,b) memset(a,b,sizeof a)#define ssclr(ss) ss.clear(), ss.str("")#define INF 0x3f3f3f3f#define MOD 1000000007using namespace std;typedef long long ll;const int maxn=520;int n,m,cnt;int vis[maxn];vector
vec[maxn];void dfs(int id){ vis[id]=1; cnt++; for(int i=0;i

 

转载地址:https://lux-sun.blog.csdn.net/article/details/81978563 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:PAT (Advanced Level) Practice - 1068 Find More Coins(30 分)
下一篇:PAT (Advanced Level) Practice - 1118 Birds in Forest(25 分)

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月19日 17时51分42秒