当前位置: 首页 > 编程日记 > 正文

图论 - 欧拉回路

Description

欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个图,问是否存在欧拉回路?

Input

测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是节点数N ( 1 < N < 1000 )和边数M;随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号(节点从1到N编号)。当N为0时输入结 
束。

Output

每个测试用例的输出占一行,若欧拉回路存在则输出1,否则输出0。 

Sample Input

3 3
1 2
1 3
2 3
3 2
1 2
2 3
0

Sample Output

1
0


---------------------------------------------------------------------我是分割线^_^---------------------------------------------------------------------



简单用此题记录一下欧拉回路的判定方法,主要分为两类,一类是有向图,一类是无向图。
无向图中,先确定所有点是否连通(可以使用并查集),然后对每个点的度数量进行判断
如果点全部连通而且每个点的度均为偶数(进出次数一样),此图即为欧拉回路;
有向图中,同样确定全部点连通之后,判断每个点的入度是否等于出度,等于则此图为欧
拉回路,反之则不为欧拉回路。

#include<iostream>
#include<algorithm>
#include<cstdio> #include<cstring> #include<string> #include<cmath> #include<vector> #include<queue> using namespace std; #define Int __int64 #define INF 0x3f3f3f3f const int MAXN = 1111; int road[MAXN]; int grade[MAXN]; int sum; int n, m; int FindRoot(int rt) { return road[rt] == rt ? rt : (road[rt] = FindRoot(road[rt])); } void init() { for (int i = 1; i <= n; i++) { road[i] = i; } sum = n; memset(grade, 0, sizeof(grade)); } int main() { //freopen("input.txt", "r", stdin); while (scanf("%d %d", &n, &m), n) { int u, v; init();//以后定要记得优先把初始化函数写上,总是丢三落四的= = for (int i = 1; i <= m; i++) { scanf("%d %d", &u, &v); grade[u]++; grade[v]++; int root1 = FindRoot(u); int root2 = FindRoot(v); if (root1 != root2) { sum--; road[root2] = root1; } } if (sum != 1) { printf("0\n"); continue; } bool judge = true; for (int i = 1; i <= n; i++) { if (grade[i] % 2 != 0) { printf("0\n"); judge = false; break; } } if (judge) printf("1\n"); } return 0; }

转载于:https://www.cnblogs.com/steamedbun/p/5740711.html

相关文章:

学习 Linux,101: 引导系统

2019独角兽企业重金招聘Python工程师标准>>> 系列文章&#xff1a; http://www.ibm.com/developerworks/cn/views/linux/libraryview.jsp?search_by%E5%AD%A6%E4%B9%A0linux101 从 BIOS 到运行 Linux 系统 引导顺序 在我们深入了解启动加载程序&#xff08;比如 LI…

用Enter键取代tab键

1. this.TextBox1.Attributes.Add("OnKeyPress","<script>if keycode13 keycode9; return false;</script>");2. <input typetext οnkeydοwn"if (event.keyCode 13) event.keyCode 9;">

程序员:我受够了!不想再在小厂里干Java了!

你是否熟悉这样的情形&#xff1a;每天10点到公司&#xff0c;打开电脑&#xff1a;10个小时的增删改查&#xff0c;搬砖写代码的一天就这样开始了。刚毕业时候的你踌躇满志&#xff0c;按照自己的原定计划&#xff0c;这时候应该混到了阿里P6。可现在在小厂苦苦挣扎&#xff0…

iOS中UISearchBar(搜索框)使用总结

2019独角兽企业重金招聘Python工程师标准>>> iOS中UISearchBar(搜索框)使用总结 初始化&#xff1a;UISearchBar继承于UIView&#xff0c;我们可以像创建View那样创建searchBar UISearchBar * bar [[UISearchBar alloc]initWithFrame:CGRectMake(20, 100, 250, 40)…

Linux常用性能检测命令

一、uptime Uptime命令的显示结果包括服务器已经运行了多长时间&#xff0c;有多少登陆用户和对服务器性能的总体评估&#xff08;load average&#xff09;。load average值分别记录了上个1分钟&#xff0c;5分钟和15分钟间隔的负载情况&#xff0c;load average不是一个百…

怎样把DataGrid存放在ViewState中的无用数据卡掉

作者&#xff1a;无间道的博客http://www.cnblogs.com/wangsaokui/articles/10031.html 怎样把 DataGrid 存放在 ViewState 中的无用数据(有时候确实如此)卡掉&#xff0c;大家知道&#xff0c;一般而言DataGrid在ViewState中会存放表格中的所有数据&#xff0c;这样会导致View…

深度学习先驱 Yann LeCun 被骂到封推!AI 偏见真该甩锅数据集?

整理 | 夕颜出品 | CSDN&#xff08;ID:CSDNnews&#xff09;最近&#xff0c;人工智能领域又发生了一次热热闹闹的争论&#xff0c;随后演变成一场偏离轨道的争吵&#xff0c;目前以 Yann 道歉封推暂告一段落......争论来龙去脉这次争论的主角是图灵奖得主、人工智能标杆性人物…

JS加强学习-DOM学习01

JavaScript由三个部分组成&#xff1a;ECMAScript、DOM、BOM。前面已经学习了ECMAScript中的基础内容&#xff0c;现在可以开始学习DOM部分了&#xff0c;在DOM中更多的是实际效果的展现。 1. DOM定义 DOM&#xff1a;document object model 文档对象模型 它是将整个页面文档封…

android 游戏引擎libgdx demo cuboc分析

开始学习android游戏开发也有一段时间了,挑选libgdx这个游戏引擎来进行学习和开发。Libgdx是一款支持2D与3D游戏开发的游戏类库,并且它是夸平台的。例如你可以在windos下开发&#xff0c;同样的代码也可以运行在android上。 刚开始学习这个游戏引擎可能会感觉无从下手&#…

倒计时1天 | 张钹院士领衔,AI开发者大会20大论坛全攻略!

2020年7月3—4日&#xff0c;由 CSDN 主办的第三届 AI 开发者大会&#xff08;AI ProCon 2020&#xff09;&#xff08;大会官网&#xff1a;https://aiprocon.csdn.net/&#xff09;将以线上直播的形式与大家相见。本次大会历时2天&#xff0c;一次性设立6大主题、20大精彩分论…

在页面中导入文件

1. <% Response.WriteFile ("Yourfile.inc") %> 2. Server.Execute("Yourfile.inc")

How Tomcat works — 四、tomcat启动(3)

上一节说到StandardService负责启动其子组件&#xff1a;container和connector&#xff0c;不过注意&#xff0c;是有先后顺序的&#xff0c;先启动container&#xff0c;再启动connector&#xff0c;这一节先来看看container。 目录 Pipeline和VavleStandardEngine类和Standar…

DataList分页

<% Page Language"C#" %> <% Import Namespace"System.Data" %> <% Import Namespace"System.Data.OleDb" %> <Script Language"C#" Runat"Server"> /* Create By 飞刀 http://www.aspcn.com 20…

【中文】Joomla1.7扩展介绍之Googlemaps Plugin

Googlemaps Plugin 插件分类&#xff1a;Maps 支持版本&#xff1a;1.5 /1.6 /1.7 关注程度&#xff1a;【最流行的】 所属类型&#xff1a;插件、多语种 可以在 Joomla 1.5.x (native), 1.6.x and 1.7.x. 的内容条目、模块或者组件中显示一个&#xff08;或多个&#xff09;…

一文读懂:GoogleNet的Inception从v1到v4的演变

来源 | 机器学习炼丹术GoogleNet和VGG是ImageNet挑战赛中的第一名和第二名。共同特点就是两个网络的层次都更深了。但是&#xff1a;VGG继承了LeNet和AlexNet的一些框架结构而GoogleNet则做了更大胆的尝试&#xff0c;虽然深度有22层&#xff0c;但是参数却是Alexnet的1/12.而V…

几何画板画一个五边形内部的方法

五边形属于多边形里面比较简单的&#xff0c;就是在四边形的基础上增加一条边而已&#xff0c;五边形在平面几何学上指所有由五条边围衬成及有五个角的多边形。完美五边形和正五边形都是五边形的一种特殊类型。几何画板作为专业绘图工具&#xff0c;可以轻松就画出五边形&#…

GDAL Data Model(转)

即描述一个GDAL data store能够包含的信息的类型。 Dataset 一个dataset &#xff08;即一个GDALDataset 对象&#xff09;是一组相关的raster bands和一些属于它们的公共信息的集合。尤其是dataset有一个适用于它所有bands的关于raster size的概念&#xff0c;它是用pixels 和…

实战:人脸识别实战项目(源码共享)

首先我想问个问题&#xff1a;现在什么工程师最值钱&#xff1f;毫无疑问&#xff0c;我想超 90% 的都会说&#xff1a;人工智能工程师。也难怪&#xff0c;随着近几年人工智能的发展&#xff0c;已经逐渐渗透到了各个领域&#xff0c;比如&#xff1a;医疗、教育、机械自动化、…

Calendar如何只显示“一、二、三...日”,不显示“星期”

秋水无恨 asp.net Calendar DayNameFormat Globalization DayNames http://www.csdn.net/develop/Read_Article.asp?id15715 Calendar的DayNameFormat&#xff0c;如FirstLetter &#xff0c;FirstTwoLetters &#xff0c;Full &#xff0c;Short 但是争对英文而言的&#xf…

gulp插件之browser-sync安装报错

2019独角兽企业重金招聘Python工程师标准>>> 最近做前端开发&#xff0c;一直用gulp来写一些自动化脚本。之前用的npm的镜像为edunpm&#xff0c;很简单&#xff0c;因为这个镜像非常的快。 但是不知道为什么browser-sync插件总是下载不成功。。。 后来用nrm切换到t…

TensorFlow、PyTorch之后,“国产”AI框架还有没有机会?

出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;众所周知&#xff0c;在机器学习框架领域&#xff0c;PyTorch、TensorFlow已分别成为目前学界和业界使用最广泛的两大实力玩家&#xff0c;而紧随其后的Keras、MXNet等框架也由于其自身的独特性受到开发者的喜爱。 202…

结构成员访问的三种方法

结构成员访问的三种方法 #include "stdio.h"#include "string.h"#include <stdlib.h>main (){struct student{int num;char * name;int score;}stu;struct student *p&stu;stu.num1;(*p).name"tom";p->score78;printf("%d\n&q…

数据库字段命名及设计规范

1.设计原则 1) 标准化和规范化数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式&#xff0c;但 Third Normal Form&#xff08;3NF&#xff09;通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说&#xff0c;遵守3NF 标准的数据库的表设计原则是…

更改管理GPO的域控制器

1.GPO先被存储到扮演PDC模拟器操作主机角色的域控制器&#xff0c;然后再由它将其复制到其他域控制器&#xff0c;域成员计算机再通过域控制器来应用GPO.2.可通过DC选项与组策略两种方式来将管理GPO的域控制器从PDC模拟器操作主机更改为其他域控制器。转载于:https://blog.51ct…

怎样使元素可编辑

作者&#xff1a;http://lucky.myrice.comE-mail:amxh21cn.com 在IE5.5中&#xff0c;可以设定元素的编辑属性。语法如下&#xff1a; object.contentEditable [ sEditable]; 其中的sEditable为下列三个之一&#xff1a; ◇inherit ◇false ◇true <script lang…

知乎多场景内容匹配方案荣获CSDN AI优秀案例奖

7月3日&#xff0c;由CSDN主办的2020 AI开发者大会拉开帷幕&#xff0c;以直播形式进行吸引了上万名技术从业者参与。大会颁发了2020 AI企业及技术应用系列奖项&#xff0c;其中知乎凭借“多场景内容匹配方案”荣获“AI优秀案例奖”。 过去一年&#xff0c;人工智能技术研发和…

批量创建用户和设置密码

(1) 首先创建用户名文件和密码文件 # touch user_name passwd active:/srv # cat passwd win00:123456 win01:123456 active:/srv # cat user_name win00:x:520:520::/home/win00:/bin/bash win01:x:521:521::/home/win01:/bin/bash (2) 然后执行命令导入用户名和密码 a…

Eclipse 小插件

http://www.junginger.biz/eclipse/

肝了三天,万字长文教你玩转 tcpdump,从此抓包不用愁

图源 | 视觉中国来源|Python编程时光&#xff08;ID: Cool-Python&#xff09;今天要给大家介绍的一个 Unix 下的一个 网络数据采集分析工具 -- Tcpdump&#xff0c;也就是我们常说的抓包工具。与它功能类似的工具有 wireshark &#xff0c;不同的是&#xff0c;wireshark 有图…

【中文】Joomla1.7扩展介绍之Fabrik (强大的表单处理能力)

Fabrik 插件分类&#xff1a; Contacts & Feedback > Forms 支持版本&#xff1a;1.5 /1.7 关注程度&#xff1a;【最流行的】 所属类型&#xff1a;组件、模块、插件、多语言 Fabrik 2.1.1 is a security fix, please update immediately Fabrik 2.1.1是一个安全…