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 一笔画问题
题意: 给你一幅画,这幅画由点和边构成,问你最少几笔能把这幅画画完. 思路: 这个题目的结论比较巧妙,首先我们考虑下,如果给的图是欧拉图,或者是条欧拉回路,那么我们一笔就搞定了, ...
最新文章
- day04 : SQL_DDL, 表创建及管理
- 多个Series合并成Dataframe,index不完全匹配怎么处理
- Servlet线程安全2
- 95后实习生的远程办公体验(asp.net mvc\C#技术栈)
- Requests方法 -- Token获取操作
- vue-cli安装教程
- 【渝粤题库】广东开放大学 建设监理 形成性考核
- Redis 与 zset(sorted set有序集合) 相关的常用命令
- [转]python中去掉字符串中的\xa0、\t、\n
- directUI的心得
- .Net魔法堂:发个带附件的邮件
- Android-JNI开发系列《十》实践利用libjpeg-turbo完美压缩图片不失真
- JavaScript:说看懂了就懂了闭包,看懂了,还是不懂...
- 变身mac达人,这几招技巧您有必要了解~
- oracle物理结构视频教学,详解Oracle物理结构
- PLC控制系统设计的基本内容
- 2021电赛预测—手把手带你玩转DDS模块AD9833
- balenaEtcher for mac(U盘启动盘制作工具)
- SDK对接遇到的问题与解决
- 2022夏每日一题(三)