nyoj_42 一笔画问题
一笔画问题
- 描述
-
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 一笔画问题相关推荐
- 32个笔画顺序表图片_32个笔画掌握透了,练字真的不难
笔画作为硬笔书法最基础的部首,也是十分重要的一部分.建议初学者一定先要学好这些笔画.配图选自田英章老师的楷书教材. 这本教材是我上大学时候,社团统一购买的.由于都是大部分都是摹写的,我本人不喜欢摹写, ...
- 一笔画问题【数据结构-图论】
回家路上听到2个人在说:田字怎么一笔写成,并且笔划不重复. 田 我回家想了许久,觉得无论如何走正常的途径肯定是不行的,投机取巧脑筋急转弯的我不讨论. 那么是否可以找到数学定理? 其实就是欧拉七桥问题: ...
- 汉字笔画数据_统计学原理 数据的预处理
数据审核 数据审核-原始数据(raw data) 完整性审核 应调查的单位或个体是否有遗漏 所有的调查项目或变量是否填写齐全 准确性审核 数据是否真实反映实际情况,内容是否符合实际 数据是否有错误,计 ...
- 模板 - 欧拉路、欧拉回路(一笔画问题)
整理的算法模板合集: ACM模板 目录 非递归版 普通递归版 HierholzersHierholzersHierholzers算法(输出字典序最小的答案) FleuryFleuryFleury算法 ...
- 一笔画 (25 分)
小丁最近迷恋上一个游戏,传说中的"一笔画"游戏. 那么什么是一笔画?如下图,顾名思义就是一笔可以完成的图.一笔画最基本的要求是在画图的过程中,笔不能离开纸,且笔所画过的线不能重复, ...
- pygame的字体画不出来_5毛钱的圆珠笔画的?每一幅都是大师之作,网友:为何我画不出来...
5毛钱的圆珠笔画的?每一幅都是大师之作,网友:为何我画不出来 艺术家们总是在记录这个社会,他们通过各种各样的方式来表现出他们对这个社会的热爱,而这些方式中最常见的就是绘画了,在艺术家的画笔之下,定格了 ...
- 一笔画问题 (DFS或并查集)
题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=42 一笔画问题是欧拉回路的一个变形,可以一笔画的条件有两个:1.所有顶点必须连通 2. ...
- ny42 一笔画问题
一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来. ...
- hdu3018 一笔画问题
题意: 给你一幅画,这幅画由点和边构成,问你最少几笔能把这幅画画完. 思路: 这个题目的结论比较巧妙,首先我们考虑下,如果给的图是欧拉图,或者是条欧拉回路,那么我们一笔就搞定了, ...
最新文章
- 带哨兵节点的链_【算法导论】10.2不带哨兵节点和带哨兵节点的双向链表
- mysql 多线程 一致性_常见缓存数据库一致性方案(建议收藏)
- 果蝇玩VR登Nature,发现注意力机制、工作记忆都有,昆虫大脑原来没比哺乳类差多少...
- 【深度学习】协同优化器和结构化知识蒸馏
- 不依赖远程API启动SEER区块链命令行钱包和网页钱包的方法
- procreate 笔刷_Procreate新手漫画入门:笔刷,图层,上色
- android7.1以太网动态ip,android7.1编译路上的那些坑!(部分转自网络整理)
- MVP Open Day小记
- Latex排版:CTeX winEdit 输出“系统找不到指定的文件”的解决办法)
- VMware 虚拟机安装 CentOS 7.2 系统
- CE教程第八步之多级指针
- 在哪里可以批量查询京东快递的单号?
- Mysql-错误处理: Found option without preceding group in config file
- linux下合并多个文件夹内容成为一个文件夹
- DIY 空气质量检测表
- VMware ESXi 8.0集成网卡驱动
- 前端_前端招聘面试题(1)
- 戴尔DELL SCV/SC系列存储故障 Storage Center停机错误的解决方案
- 第三方物流学习(五)
- 用python写菜单_用Python创建菜单