一笔画问题

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 4
描述

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开始深搜,并用vis数组记录每个点是否被搜索到。

然后遍历每个点,统计度数为奇数的点的个数,当且仅当为2或0时,此图是欧拉回路(或通路),同时,若存在某个点没被搜索到,说明该图本来就不连通,不可能是欧拉回路(或通路)。

代码:

#include<cstdio>
#include<cstring>
struct Node
{int I;int m[1005];
}node[1005];
int visit[1005];
void dfs(int x)
{for(int i=0;i<node[x].I;i++){if(!visit[node[x].m[i]]){visit[node[x].m[i]]=1;;dfs(node[x].m[i]);}}
}
int main()
{int t;scanf("%d",&t);while(t--){int n,m;int u,v;scanf("%d%d",&n,&m);memset(node,0,sizeof(node));memset(visit,0,sizeof(visit));for(int i=0;i<m;i++){scanf("%d%d",&u,&v);int vis=0;for(int j=0;j<node[u].I;j++){if(node[u].m[j]==v){vis=1;break;}}if(!vis&&u!=v){node[u].m[node[u].I]=v;node[u].I++;}vis=0;for(int j=0;j<node[v].I;j++){if(node[v].m[j]==u){vis=1;break;}}if(!vis){node[v].m[node[v].I]=u;node[v].I++;}}visit[1]=1;dfs(1);int ok=0;int odd=0;for(int i=1;i<=n;i++){if(node[i].I&&node[i].I%2)odd++;if(!visit[i]){ok=1;break;}}if(ok)printf("No\n");else if(odd!=2&&odd!=0)printf("No\n");elseprintf("Yes\n");}return 0;
}

nyoj_42 一笔画问题相关推荐

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

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

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

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

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

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

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

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

  5. 一笔画 (25 分)

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

  6. pygame的字体画不出来_5毛钱的圆珠笔画的?每一幅都是大师之作,网友:为何我画不出来...

    5毛钱的圆珠笔画的?每一幅都是大师之作,网友:为何我画不出来 艺术家们总是在记录这个社会,他们通过各种各样的方式来表现出他们对这个社会的热爱,而这些方式中最常见的就是绘画了,在艺术家的画笔之下,定格了 ...

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

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

  8. ny42 一笔画问题

    一笔画问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来. ...

  9. hdu3018 一笔画问题

    题意:       给你一幅画,这幅画由点和边构成,问你最少几笔能把这幅画画完. 思路:      这个题目的结论比较巧妙,首先我们考虑下,如果给的图是欧拉图,或者是条欧拉回路,那么我们一笔就搞定了, ...

最新文章

  1. 带哨兵节点的链_【算法导论】10.2不带哨兵节点和带哨兵节点的双向链表
  2. mysql 多线程 一致性_常见缓存数据库一致性方案(建议收藏)
  3. 果蝇玩VR登Nature,发现注意力机制、工作记忆都有,昆虫大脑原来没比哺乳类差多少...
  4. 【深度学习】协同优化器和结构化知识蒸馏
  5. 不依赖远程API启动SEER区块链命令行钱包和网页钱包的方法
  6. procreate 笔刷_Procreate新手漫画入门:笔刷,图层,上色
  7. android7.1以太网动态ip,android7.1编译路上的那些坑!(部分转自网络整理)
  8. MVP Open Day小记
  9. Latex排版:CTeX winEdit 输出“系统找不到指定的文件”的解决办法)
  10. VMware 虚拟机安装 CentOS 7.2 系统
  11. CE教程第八步之多级指针
  12. 在哪里可以批量查询京东快递的单号?
  13. Mysql-错误处理: Found option without preceding group in config file
  14. linux下合并多个文件夹内容成为一个文件夹
  15. DIY 空气质量检测表
  16. VMware ESXi 8.0集成网卡驱动
  17. 前端_前端招聘面试题(1)
  18. 戴尔DELL SCV/SC系列存储故障 Storage Center停机错误的解决方案
  19. 第三方物流学习(五)
  20. 用python写菜单_用Python创建菜单

热门文章

  1. Spring当中循环依赖很少有人讲,今天让我们来看看吧
  2. 【日期】根据日期求星期
  3. 奔跑的微信,失控的张小龙
  4. AD2020库安装及查找库
  5. 谷歌小恐龙-有网也能玩儿
  6. python语法速成方法_一天快速入门Python语法基础之函数
  7. SQl函数: 1.取整函数
  8. 迷你音乐播放器v1.0正式上线!
  9. 推荐一个svg转ico的在线网站(非常清晰)
  10. 【亲测可用】2022最新酒桌小游戏喝酒小程序源码_带流量主