题目给出图,要求判断不能一遍走完所有边,也就是无向图,题目分类是分欧拉回路,但其实只要判断度数就行了。
一开始以为只要判断度数就可以了,交了一发WA了。听别人说要先判断是否是联通图,于是用并查集并一起,然后判断是否有多个根。
用dfs的话就是深搜时标记下,最后看看有没有全部标记。我没用dfs做。
代码:
#include <cstdio>
const int maxn = 201;
int f[maxn];
int d[maxn];
int find(int x) {
if (x != f[x])
return f[x] = find(f[x]);
return x;
}
int main() {
int n, r;
while (scanf("%d%d", &n, &r) != EOF) {
bool ok = 1;
int ans = 0;
for (int i = 0; i < n; i++)
d[i] = 0, f[i] = i;
int a, b;
for (int i = 0; i < r; i++) {
scanf("%d%d", &a, &b);
f[find(a)] = find(b);
d[a]++;
d[b]++;
}//for
if (r <= 1 || n == 0)
ok = 0;
for (int i = 0; ok && i < n; i++)
if (f[i] == i && ans++ > 0)
ok = 0;
for (int i = 0; ok && i < n; i++)
if (d[i] % 2 != 0) {
ok = 0;
break;
}
if (ok)
printf("Possible\n");
else
printf("Not Possible\n");
}//while
return 0;
}
分享到:
相关推荐
这里以构建一个度全部相同的欧拉回路,并输出欧拉回路的路径 1.构建欧拉回路 连通主要是靠树来保证,首先建立一个度为k的完全图,其中会有很多需要主要的地方 (1)首先构造树 =>保证顶点连通 (2)将度的点...
根据提供的文件信息,本文将对“欧拉回路程序java”进行详细解析,涉及的知识点主要包括:欧拉路径与欧拉回路的概念、Java程序设计基础、数据结构(如图和节点)、算法实现(欧拉回路算法)等。 ### 欧拉路径与欧拉...
欧拉回路C++程序 随机输入任意点数,给出图中存在的欧拉回路
这段代码提供了一个完整的解决方案,用于检测和输出欧拉回路,涵盖了图的构建、性质验证、并查集操作以及欧拉回路的经典算法。它不仅展示了数据结构的应用,如邻接表和并查集,还深入讲解了图论中的一个重要概念——...
欧拉回路是图论中的一个基础概念,它在数学与计算机科学中占据着极其重要的地位。所谓欧拉回路,是一种在图中特定的路径,它从任意顶点出发,经过每条边恰好一次,并最终回到起点形成闭合回路。在计算机科学的应用中...
通过对欧拉回路的基本概念、特征及算法思想的理解,我们可以通过编程实现相应的算法来求解欧拉回路问题。特别是弗罗莱算法提供了一种简单而有效的方法来寻找欧拉回路,其核心在于避免在遍历过程中删除那些会使图变得...
欧拉回路的Fleury算法 欧拉回路的Fleury算法是图论中...欧拉回路的Fleury算法是一种有效的算法,可以快速判断图是否存在欧拉回路,并可以输出其中一条欧拉回路。该算法广泛应用于图论、计算机网络、交通网络等领域。
2. **哈密尔顿回路**:虽然欧拉回路关注的是遍历所有顶点,而哈密尔顿回路则要求遍历所有顶点并回到起点,且每条边只通过一次。欧拉回路的存在并不保证哈密尔顿回路的存在,反之亦然。 3. **富勒顿算法**:一种用于...
实现了欧拉回路的程序实现即遍历图输出欧拉回路
实验三十八:如何构建欧拉回路 在本文中,我们将了解如何构建欧拉回路,掌握用构造证明法...在本文中,我们了解了欧拉回路的定义、构造证明法和Python 实现,并使用子回路构造函数和欧拉回路构建函数构建了欧拉回路。
HCIE-openEuler欧拉认证笔试题库,可以无损放大
实验目的包括理解和掌握欧拉图的定义,以及如何编写算法来判断一个图是否为欧拉图,并找到其中的欧拉回路。实验者需要具备一定的图论基础,如理解图的结构、奇点和偶点的概念。奇点是指度数为奇数的顶点,而在欧拉图...
在图论中,欧拉路径和欧拉回路是两个重要的概念。欧拉路径是从图的一个顶点出发,经过图中的每一条边恰好一次,最后到达另一个顶点的路径。而欧拉回路则是在图中从一个顶点出发,经过每条边恰好一次,并最终返回到...
通过对以上题目类型的解析,我们可以看到,欧拉回路和哈密顿回路的题目主要考察的是图论的基础知识和一些特殊情况下的性质。在解决这类问题时,关键在于理解题目描述,正确地构建图模型,并根据图的特性选择合适的...
综上所述,Fleury算法是寻找无向图欧拉回路的一种方法,其C语言实现涉及到图的数据结构、路径构建以及边界条件处理等编程技巧。虽然时间复杂度较高,但在理解图论和算法设计方面,它是很有价值的学习材料。
在学习数据结构的过程中,理解并实现欧拉回路的算法是一项基础而关键的任务。这个压缩包文件提供了一个用C语言编写的欧拉回路计算程序,对于想要深入学习这方面的学生来说,是一个很好的参考资料。 首先,我们要...
【欧拉回路性质与应用探究】 欧拉回路,源于18世纪的哥尼斯堡七桥问题,是图论中的基本概念,它涉及到在一张图中能否找到一条路径,使得这条路径恰好经过每条边一次且仅一次,并且回到起点。这种路径被称为欧拉回路...
在这个实验中,学生将使用离散数学的知识来处理无向图,并通过编程实现欧拉路径的搜索。 1. **图的生成** - **邻接矩阵**:为了存储图,采用了动态分配的邻接矩阵,只存储下三角部分(无向图的对称性)。通过定义...
本资源主要内容为有向图的无向图的欧拉回路的判定,使用的编程语言为JAVA,并采用邻接表作为图的存储结构,使用并查集判断图是否连通,利用图的遍历算法得到一条有效的欧拉回路,最后通过界面将欧拉路径动态显示在...