SDUT-3364_欧拉回路

数据结构实验之图论八:欧拉回路

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 <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>int n;/*n节点数量*/
int f[1050];/*记录点是否被遍历过*/
int INF = 1e9+7;/*相当于无穷大*/
int s[1050][1050];
int num[1050];/*记录节点的度*/void DFS(int x)
{f[x] = 1;int i;for(i=1;i<=n;i++){if(!f[i]&&s[x][i])DFS(i);}
}int main()
{int t;int m,i,j;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);for(i=1;i<=n;i++)for(j=1;j<=n;j++)s[i][j] = 0;for(i=1;i<=n;i++)num[i] = f[i] = 0;for(i=0;i<m;i++)/*输入边的时候顺便把端点的度记录*/{int a,b;scanf("%d%d",&a,&b);s[a][b] = s[b][a] = 1;num[a] ++;num[b] ++;}for(i=1;i<=n;i++)/*判断度是否都是偶数*/{if(num[i]%2)break;}if(i!=n+1)/*说明有点的度不是偶数,证明不是欧拉回路*/{printf("0\n");continue;}int ff = 0;for(i=1;i<=n;i++)/*判断图是否连通*/{if(!f[i])/*未标记说明是一颗新的树(图),对他进行DFS*/{ff ++;/*记录树(图)的数量*/DFS(i);}}if(ff>1)/*树(图)的数量不唯一,说明图不连通*/{printf("0\n");continue;}printf("1\n");}return 0;
}

转载于:https://www.cnblogs.com/luoxiaoyi/p/10067588.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/450072.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tcp三次握手和四次挥手状态图

三次握手 四次挥手 正常情况下 同时挥手 SYN攻击&#xff1a; 在三次握手过程中&#xff0c;Server发送SYN-ACK之后&#xff0c;收到Client的ACK之前的TCP连接称为半连接&#xff08;half-open connect&#xff09;&#xff0c;此时Server处于SYN_RCVD状态&#xff0c;当…

QEMU 3.0.0 新特性一览

QEMU 在 2018年8月15发布了版本3.0.0&#xff0c; 正式从 2.12 进入了3.0 时代。 而且到今年位为止&#xff0c;QEMU 已经有15个年头了&#xff0c;出乎意料的长阿&#xff0c;:) 其主要新特性如下&#xff1a; ARM&#xff1a; 在virt机器中支持SMMUv3 IOMMU 在v8M中支持VLLDM…

OpenCL、OpenGL 同时工作

视频处理如果能使用OpenCL、OpenGL、omap将大量提高运算速度&#xff0c;简单介绍OpenCL、OpenGL 同时工作。 OpenCL和OpenGL都能用于操作GPU&#xff0c;但是前者主要用于通用计算&#xff0c;而后者主要用于图像渲染。在某些情况下&#xff0c;我们希望能用OpenCL计得到算图像…

财务自由之路——为什么选择淘宝(下)

接上文~一、淘宝之前的大佬们是怎么试错的?我们看看在淘宝之前的大佬们是怎么试错迭代产品的。都知道飞机是莱特兄弟发明的&#xff0c;但很少有人知道为什么是他们。在内燃机发明后的很长一段时间内全球各地发明家都在投入研究飞机&#xff0c;莱特兄弟相对于其他竞争者&…

java参数后面跟三个点是什么意思

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 AVA中类型后面跟三个点是什么来的。 看代码中那个三点&#xff0c;这样做起到重载的作用&#xff0c;但这是什么意思&#xff1f; cla…

一只视频程序猿的移动直播SDK初体验

本文转自一只视频程序猿的移动直播SDK初体验&#xff0c;此处仅做排版改动。 今早老板召开站会&#xff0c;“移动直播这么火&#xff0c;市面上有一百多个APP&#xff0c;小斌&#xff0c;你下周交个原型APP瞅瞅!” 小弟心中一万匹草泥马奔过&#xff0c;这玩意儿哪儿是几天就…

Xilinx zynq-7000系列FPGA移植Linux操作系统详细教程

Xilinx zynq-7000系列FPGA移植Linux操作系统详细教程 一&#xff1a;前言 最近手上压了一块米联客的Miz7035&#xff0c;一块xilinx zynq-7000系列的开发板&#xff0c;想着正好学习一下linux在ARM9上的移植&#xff0c;网上基本都是ZC702、zed的教程&#xff0c;这对于买了非标…

程序员的创业困境 谁来帮助出出主意?

【编者按】有人说&#xff0c;程序员是吃青春饭的&#xff0c;到一定年龄就得考虑转行&#xff0c;也有人选择自己创业。而当创业使你偏离了之前持续学习专业知识的轨道时&#xff0c;你会选择在创业路上继续坚持还是回归自己的老本行&#xff1f;编程编了十几年的Dan McComas半…

节选—Android 视频直播 ( 从快播到直播,从高清到无码 )十年视频开发项目

本文转载自Android 视频直播 &#xff08; 从快播到直播&#xff0c;从高清到无码 )十年视频开发项目&#xff0c;截取其中技术概念比较相关的部分&#xff0c;并做了重新的排版。 视频和直播的准备&#xff1a; android-java层&#xff1a;camera相关&#xff08;视频&#x…

getDeclaredMethod和getMethod的区别

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 getDeclaredMethod*()获取的是类自身声明的所有方法&#xff0c;包含public、protected和private方法。getMethod*()获取的是类的所有共有…

12.5PMP试题每日一题

在什么情况下项目正式受控于实施整体变更控制过程&#xff1a;A、从项目启动到收尾的所有过程B、只有当项目基准建立之后C、在项目基准建立之前D、只要有人提起变更请求的时候 作者&#xff1a;Tracy19890201&#xff08;同微信号&#xff09; 答案将于明天和新题一起揭晓&…

在线预览word,excel文档

Google Doc 示例&#xff1a;https://jsfiddle.net/7xr419yb/ Microsoft Office 示例&#xff1a;https://jsfiddle.net/gcuzq343/转载于:https://www.cnblogs.com/alexguoyihao/p/10314626.html

如何迁移整个git仓库

转自准备更换git托管&#xff0c;如何迁移原git仓库一个回答 如果你想从别的 Git 托管服务那里复制一份源代码到新的 Git 托管服务器上的话&#xff0c;可以通过以下步骤来操作。 从原地址克隆一份裸版本库&#xff0c;比如原本托管于 GitHub。 git clone –bare git://githu…

关于创业:希望有人在N年前就告诉我的一些事儿

【编者按】原文作者为前微软员工、创业家Amir Khella&#xff0c;他离开微软后开始自主创业&#xff0c;并成功创办了多家公司。他经常在博客中分享自己的创业故事和经验。以下是其中一篇博文&#xff0c;他认为创业者想要成功&#xff0c;首先需要找到自己的方向&#xff0c;再…

Rust核心团队前成员Brian Anderson加入PingCAP

昨天&#xff0c;国内新型分布式数据库公司PingCAP联合创始人兼CEO刘奇在朋友圈宣布&#xff0c;Rust核心团队前成员Brian Anderson将加入公司。PingCAP联合创始人兼CTO黄东旭进一步向InfoQ记者证实了此消息&#xff0c;并透露Brian将从事TiKV相关的工作&#xff0c;从存储引擎…

JeeSite 是什么、概述

见JeeSite官网&#xff1a;http://jeesite4.mydoc.io/ 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 总体概述 快速访问 JeeSite 官网地址&#xff1a;http://jeesite.comJeeSite 在…

单机单网卡最大tcp长连接数真的是65535吗?

很早微博上一直讨论比较多的问题&#xff0c;这里转载个知乎的答案&#xff1a;单机单网卡最大tcp长连接数真的是65535吗&#xff1f; 作者&#xff1a;许怀远 链接&#xff1a;https://www.zhihu.com/question/66553828/answer/244313925 来源&#xff1a;知乎 著作权归作者…

观察者模式-Observer Pattern

1.主要优点 观察者模式的主要优点如下&#xff1a; (1) 观察者模式可以实现表示层和数据逻辑层的分离&#xff0c;定义了稳定的消息更新传递机制&#xff0c;并抽象了更新接口&#xff0c;使得可以有各种各样不同的表示层充当具体观察者角色。 (2) 观察者模式在观察目标和观察者…

赌还是不赌 你应该辞职去创业吗?

【编者按】本文的作者是Amir Khella&#xff0c;他是一位著名的用户体验设计师&#xff0c;也是创业顾问和企业家。在过去的三年里&#xff0c;他成功的打造了十几家公司&#xff0c;其中不少还被大企所收购&#xff0c;比如说Google收购了他的DocVerse&#xff0c;LimeLight N…

Python 深浅copy 和文件操作

深浅copy 1&#xff0c;先看赋值运算。 l1 [1,2,3,[barry,alex]] l2 l1l1[0] 111 print(l1) # [111, 2, 3, [barry, alex]] print(l2) # [111, 2, 3, [barry, alex]]l1[3][0] wusir print(l1) # [111, 2, 3, [wusir, alex]] print(l2) # [111, 2, 3, [wusir, alex]] 对…