题目描述

zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。

规定,所有的边都只能画一次,不能重复画。

输入

第一行只有一个正整数N(N<=10)表示测试数据的组数。
每组测试数据的第一行有两个正整数P,Q(P<=1000,Q<=2000),分别表示这个画中有多少个顶点和多少条连线。(点的编号从1到P)
随后的Q行,每行有两个正整数A,B(0<A,B<P),表示编号为A和B的两点之间有连线。

输出

如果存在符合条件的连线,则输出"Yes",
如果不存在符合条件的连线,输出"No"。

样例输入

2
4 3
1 2
1 3
1 4
4 5
1 2
2 3
1 3
1 4
3 4

样例输出

No
Yes

解题思路:

对于这个问题来说,判断两个条件是否满足就好了;
(1)是否连通。
(2)奇点个数是0或者是2。图上线段的端点可以分成二类,奇点和偶点。一个点,以它为端点的线段数是奇数就称为奇点,线段数是偶数就称为偶点。
于是就可以使用并查集来做。。

AC代码:

#include<iostream>
#include<cstdio>
#include<cstring>
int father[1001],a[1001];
int find(int x)
{while(x!=father[x])x=father[x];return x;
}
void merge(int x,int y)
{x=find(x);y=find(y);if(x!=y)father[x]=y;
}
int main()
{int N,P,Q,A,B;int i,s,j; while(~scanf("%d",&N))while(N--){s=j=0;memset(a,0,sizeof(a));scanf("%d %d",&P,&Q);for(i=1;i<=P;i++)father[i]=i;while(Q--){scanf("%d %d",&A,&B);a[A]++;a[B]++;merge(A,B);}for(i=1;i<=P;i++){if(father[i]==i)j++;if(a[i]&1)s++;}if(j==1&&(s==0||s==2))printf("Yes\n");elseprintf("No\n");}return 0;
}

nyist 一笔画问题相关推荐

  1. 一笔画问题 (DFS或并查集)

    题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=42 一笔画问题是欧拉回路的一个变形,可以一笔画的条件有两个:1.所有顶点必须连通  2. ...

  2. 题目42:一笔画问题

    题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=42 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序, ...

  3. 【一笔画问题 42 搜索 】

    http://acm.nyist.net/JudgeOnline/problem.php?pid=42 解题思路: 在18世纪的哥尼斯堡城里有七座桥.当时 有很多人想要一次走遍七座桥,并且每座桥只能经 ...

  4. NYOJ 42 一笔画问题

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=42 快有一个礼拜没写过博客了,数据结构里面的算法太多,经典题目就那么点,做一道少一道,因为 ...

  5. 32个笔画顺序表图片_32个笔画掌握透了,练字真的不难

    笔画作为硬笔书法最基础的部首,也是十分重要的一部分.建议初学者一定先要学好这些笔画.配图选自田英章老师的楷书教材. 这本教材是我上大学时候,社团统一购买的.由于都是大部分都是摹写的,我本人不喜欢摹写, ...

  6. 一笔画问题【数据结构-图论】

    回家路上听到2个人在说:田字怎么一笔写成,并且笔划不重复. 田 我回家想了许久,觉得无论如何走正常的途径肯定是不行的,投机取巧脑筋急转弯的我不讨论. 那么是否可以找到数学定理? 其实就是欧拉七桥问题: ...

  7. 汉字笔画数据_统计学原理 数据的预处理

    数据审核 数据审核-原始数据(raw data) 完整性审核 应调查的单位或个体是否有遗漏 所有的调查项目或变量是否填写齐全 准确性审核 数据是否真实反映实际情况,内容是否符合实际 数据是否有错误,计 ...

  8. 模板 - 欧拉路、欧拉回路(一笔画问题)

    整理的算法模板合集: ACM模板 目录 非递归版 普通递归版 HierholzersHierholzersHierholzers算法(输出字典序最小的答案) FleuryFleuryFleury算法 ...

  9. 一笔画 (25 分)

    小丁最近迷恋上一个游戏,传说中的"一笔画"游戏. 那么什么是一笔画?如下图,顾名思义就是一笔可以完成的图.一笔画最基本的要求是在画图的过程中,笔不能离开纸,且笔所画过的线不能重复, ...

最新文章

  1. Java Review - Queue和Stack 源码解读
  2. 矩形嵌套(NYOJ-16)
  3. 拳王公社:网赚高手的零成本引流秘籍,这4个才是核心思维!
  4. mysql5.6 主从 延迟_MySQL5.6升级5.7时,出现主从延迟问题排查过程
  5. 安装了java后,为什么有些jar不能执行
  6. INNO setup 制作安装包
  7. mysql数据库解锁
  8. YB5212A充电IC充电芯片sop8
  9. VB 切换到指定的应用程序上
  10. C++几个常用的排序
  11. python 问题Some characters could not be decoded, and were replaced with REPLACEMENT CHARACTER.
  12. 为什么任何数的0次方都是1
  13. 简谈几种ddos防御方法
  14. 计算机cpu最高温度,详解电脑cpu温度过高几种常用处理方法
  15. iphone7运行linux,我在iPhone7装入了Linux系统!
  16. 2021年中式烹调师(中级)考试报名及中式烹调师(中级)复审模拟考试
  17. c语言中找不到EXE,windows找不到文件c:\windows\system32\msdt.exe如何解决
  18. Mybatis 查询 返回值中只有id有值,其他都是null;
  19. python 自动化测试面试题及答案_自动化测试面试题及答案大全(1)
  20. Java笔记:抽象类和接口

热门文章

  1. java map赋值给model_Map,Model,ModelMap使用方法
  2. 视频 + PPT | 用户中台建设实践解析
  3. CEO 赠书 | 决策是一个技术活,如何做「对」的事?
  4. scrapy-redis
  5. MySQL用户管理及SQL入门
  6. linux inode100%
  7. ansile(3)playbook 使用说明
  8. Java数据结构与排序算法——堆和堆排序
  9. php 之 post json 数据
  10. 经典vim插件功能说明、安装方法和使用方法介绍(已更新)