题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=42

题目大意:给你一些点和边,问能否用一笔把这个图画出来,每条边只能画一次

思路:求是否存在欧拉通路(所有点度数均为偶数或者有两个点的度数为奇数),图可能不连通,故还要判断图的连通性,另外,需要注意的是图中可能存在孤立的点,这个也要判断

#include<stdio.h> #include<string.h> #define N 1010 int d[N],rank[N],father[N]; int find(int x) /*找父节点*/ { int r=x; while(father[r]!=r) r=father[r]; return r; } void Union(int x,int y) /*按秩合并,这里的秩是指以该顶点为根的树所含节点个数*/ { x=find(x); y=find(y); if(x==y) return ; if(rank[x]>rank[y]) { father[y]=x; rank[x]+=rank[y]; } else { father[x]=y; rank[y]+=rank[x]; } return ; } int main() { int ncase,i,n,m,x,y,count,count1,u; scanf("%d",&ncase); while(ncase--) { memset(d,0,sizeof(d)); scanf("%d%d",&n,&m); for(i=1;i<=n;i++) /*初始化*/ { father[i]=i; rank[i]=1; } while(m--) { scanf("%d%d",&x,&y); Union(x,y); d[x]++; /*记录各顶点的度数*/ d[y]++; } count=count1=0; u=1; for(i=1;i<=n;i++) { if(d[i]%2!=0) count++; /*记录度数为奇数的点个数*/ if(d[i]==0) count1++; /*记录度数为0的点个数*/ else u=i; /*找一个度数不为0的点*/ } if((count==0 || count==2) && count1+rank[find(u)]==n) printf("Yes/n"); /*存在欧拉通路并且是连通图*/ else printf("No/n"); /*第一次看错啦,以为输出是大写的,结果wrong了*/ } return 0; }

nysit 42 欧拉通路(一笔画图)相关推荐

  1. 图系列(四)欧拉通路与欧拉回路

    欧拉通路与欧拉回路 之前,写了图系列一二三,现在出四啦!这也意味着,对于图的部分,可以说50%以上常用的内容就已经过了一遍了.欧拉路的部分会稍微难一点,主要是我们要和定义打交道了.至于其他图的理论,我 ...

  2. 图论 —— 图的遍历 —— 欧拉通路与欧拉回路问题

    [基本概念] 欧拉通路:通过图中所有边一次且仅一次行遍所有顶点的通路 欧拉回路:通过图中所有边一次且仅一次行遍所有顶点的回路 欧拉图:具有欧拉回路的图 半欧拉图:具有欧拉通路而无欧拉回路的图 奇度点: ...

  3. 欧拉通路、欧拉回路、欧拉图和半欧拉图以及 Hierholzer 算法

    概念:欧拉通路(又称欧拉路径).欧拉回路.欧拉图和半欧拉图 定义 通过图中所有边恰好一次且行遍所有顶点的通路称为欧拉通路(又称欧拉路径). 通过图中所有边恰好一次且行遍所有顶点的回路称为欧拉回路. 具 ...

  4. #1176 : 欧拉路·一(欧拉通路的判定)

    #1176 : 欧拉路·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho最近在玩一个解密类的游戏,他们需要控制角色在一片原始丛林里面探险,收集道具,并找 ...

  5. ZOJ - 4122 Triangle City(最短路+欧拉通路+思维)

    题目链接:点击查看 题目大意:给出一张三角形的无向图,如下图所示 求出从点 ( 1 , 1 ) 到点 ( n , n ) 找到一条最长路,且每条边至多遍历一次,输出最长路的权值以及路径 题目分析:点 ...

  6. 欧拉图——欧拉通路和欧拉回路

    定义: 欧拉通路 (欧拉迹):通过图中每条边且只通过一次,并且经过每一顶点的通路. 欧拉回路 (欧拉闭迹):通过图中每条边且只通过一次,并且经过每一顶点的回路. 欧拉图:存在欧拉回路的图. 简单说欧拉 ...

  7. 欧拉回路 欧拉通路 欧拉回路图

    来源 一.定义 对于无向图: 1) 设G是连通无向图,则称经过G的每条边一次并且仅一次的路径为欧拉通路: 2) 如果欧拉通路是回路(起点和终点是同一个顶点),则称此回路为欧拉回路(Euler circ ...

  8. POJ - 2513 Colored Sticks 欧拉通路+并查集+静态树

    一开始想用map来搞,但是感觉好复杂,然后想了一下看大佬们用trie做的,感觉十分合理就敲了一发. 一开始re,数组要开到550000 只会静态的字典树,在每个根节点看是否出现过改颜色,如果没有就把该 ...

  9. 【POJ - 2337】Catenyms(欧拉图相关,欧拉通路输出路径,tricks)

    题干: A catenym is a pair of words separated by a period such that the last letter of the first word i ...

最新文章

  1. 本地缓存性能之王Caffeine
  2. [转]《我眼中的技术高手》——邯郸学步、创作与创新
  3. Vue监控器watch的全面解析
  4. SAP Spartacus 里的 cxOutletRef 指令执行过程分析
  5. 海量数据拆分到nosql系统的一种方案
  6. 虚拟机中使用Samba实现文件共享,并在win10上创建映射网络驱动器
  7. [机器学习] 分类 --- Support Vector Machine (SVM)
  8. Axure教程 axure新手入门基础(3) 简单易上手
  9. vue取url路径传参_vue不通过路由直接获取url中参数的方法示例
  10. 不输入密码执行sudo命令方法介绍
  11. 性能测试界“网红”云性能测试服务,了解一下?
  12. Xamarin.Android 使用 SQLite 出现 Couldn't read row 0, col -1 from CursorWindow. 异常
  13. 洛谷 P2294 [HNOI2005]狡猾的商人
  14. Android飞机大战小游戏
  15. 14种DLL注入技术
  16. sql sever中计算百分比
  17. 如何隐藏logo 高德地图api_高德地图去掉logo
  18. 手机怎么用外嵌字幕_【本地视频】手动去除字幕、水印的实用方法
  19. python 数据库框架peewee_python peewee模块使用
  20. 人工智能学习:python实现迭代加深的深度优先搜索

热门文章

  1. 最短路径(迪克斯特拉算法)
  2. 计算机教学参与录,参与课堂教学视频录制工作的几点感想
  3. 网站服务器配置计算,服务器配置计算公式
  4. 结束打工生活,他回乡靠养鸡致富
  5. 阿里平头哥 数字IC验证 校招一面面经
  6. 自学习循路的移动机器人模型设计与实现
  7. 已成功拿下字节、腾讯、脉脉offer,实战解析
  8. Collection集合--遍历List集合的五种方法
  9. 【码上实战】【立体匹配系列】经典SGM:(6)视差填充
  10. java 声明变量 初始化_Java变量的声明和初始化