ny42 一笔画问题
一笔画问题
- 描述
- 
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
 讲解,这一道题仔细理解意思会发现,和“吝啬的国度”那道题很像;就是搜索的方式不同
 代码如下:#include<iostream> 
 #include<vector>
 #include<queue>
 #include<algorithm>
 using namespace std;
 const int N=;
 int visit[N];
 int cnt;
 vector< int >cc[N];
 void dfs(int x)
 {
 visit[x]=;
 int next=-;
 for(int i=;i<cc[x].size();i++)
 {
 int tmp=cc[x][i];
 if(!visit[tmp])
 {
 next=tmp;
 break;
 }
 }
 if(-!=next)
 dfs(next);
 }
 int main()
 {
 int t,m,n,a,b,i;
 cin>>t;
 while(t--)
 {int max=;
 cin>>m>>n;
 for(i=;i<=n;i++)
 {
 cin>>a>>b;
 cc[a].push_back(b);
 cc[b].push_back(a);
 }
 int start=;
 for(i=;i<=m;++i)
 {
 if(cc[i].size()<cc[start].size())
 start=i;
 }
 dfs(start);
 bool flag=true;
 for(i=;i<=m;i++)
 if(!visit[i])
 {
 flag=false;
 break;
 }
 if(!flag)
 cout<<"No";
 else
 {
 int j=;
 for(i=;i<=m;i++)
 if(cc[i].size()&)
 j+=;
 if(==j ||==j)
 cout<<"Yes";
 else cout<<"No";
 }
 for(i = ; i <=m; ++i)
 {
 visit[i]=;cc[i].clear();
 }
 cout<<endl;
 }
 return ;
 }#include<stdio.h> 
 #include<string.h>
 using namespace std;
 int Edge[][],visited[],degree[];
 void dfs(int cur,int v)
 {
 visited[cur]=;
 int i;
 for(i=;i<=v;i++)
 if(Edge[cur][i]) //从邻接顶点往下寻找并计算出结点的度
 {
 degree[cur]++;
 if(!visited[i]) //标记邻接顶点
 dfs(i,v);
 }
 }
 int main()
 {
 int test;
 scanf("%d",&test);
 while(test--)
 {
 int v,e;
 memset(Edge,,sizeof(Edge));
 memset(visited,,sizeof(visited));
 memset(degree,,sizeof(degree));
 scanf("%d%d",&v,&e);
 int j,x,y,ok=;
 for(j=;j<=e;++j)
 {
 scanf("%d%d",&x,&y);
 Edge[x][y]=Edge[y][x]=;
 }
 dfs(,v);
 for(j=;j<=v;++j) //循环判断图是否连通
 {
 if(visited[j]==)
 {
 ok=; //如果有点没有被连到
 break;
 }
 }
 if(!ok) printf("No\n");
 else
 {
 j=;
 for(int k=;k<=v;++k)
 if(degree[k]%!=)
 j+=;
 if(j==||j==) //j=2时,则有两个点必为起点和终点,j=0,则任意点为起始点
 printf("Yes\n");
 else
 printf("No\n");
 }
 }
 }
 
ny42 一笔画问题的更多相关文章
- nyoj-一笔画问题-欧拉图+联通判定
		一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ... 
- fcitx 候选词出现奇怪的笔画
		原来fcitx还有笔画输入的功能,输入h出现一个横,s出现竖,p是撇,n是捺,z是折. 虽然很有意思,但是不实用,而且还会出现在第一页候选词中,影响输入,可以通过配置文件禁用掉: $ vim ~/.c ... 
- NYOJ 42 一笔画问题
		一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ... 
- ACM题目————一笔画问题
		描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来. 规定,所有的边都只能画一次,不能重复画. 输入 第一行只有一个正整数N(N< ... 
- nyoj-----42一笔画问题
		一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ... 
- UVA 291 The House Of Santa Claus (DFS求一笔画)
		题意:从左下方1开始,一笔画出圣诞老人的屋子(不过话说,圣诞老人的屋子是这样的吗?这算是个屋子么),输出所有可以的路径. 思路:贴代码. #include <iostream> #incl ... 
- nyist 42  一笔画 (欧拉回路 + 并查集)
		nyoj42 分析: 若图G中存在这样一条路径,使得它恰通过G中每条边一次,则称该路径为欧拉路径. 若该路径是一个圈,则称为欧拉(Euler)回路. 具有欧拉回路的图称为欧拉图(简称E图).具有欧拉路 ... 
- Nyoj42 一笔画问题 (欧拉道路)
		http://acm.nyist.net/JudgeOnline/problem.php?pid=42题目链接 #include <cstdio> #include <cstring ... 
- sql server 利用首字母拼音排序和笔画排序的语句
		--按笔画排序 select * from Student order by Sname COLLATE Chinese_PRC_Stroke_CS_AS_KS_WS --按字母拼音排序 select ... 
随机推荐
- Camera 预览变形问题解决
			最近开发一款自定义相机采集照片的demo,花了一个上午开发了一个在测试机上功能正常的apk连同测试机一起交付(需求方反馈没有Android设备),然而晚上被喊去说是在华为畅玩某型号上预览会变形,拍到的 ... 
- vue 开发中的常见问题
			(一)eslint静态检查 在大家用vue-cli创建工程的时候,会有一项,使用使用eslint,如果选择了y,那么工程就会安装并启用eslint. 这里列举一下常见的错误: 1.多余的分号 2.定义 ... 
- 解决ios微信内置浏览器触发事件有问题方案
			你的问题原因是事件冒泡导致找不到或者找到多个事件导致的, 你这样去写! $(“#div1").on("click",".k1",function(){ ... 
- 优化后队列的实现(C语言实现)
			上一篇中的队列的定义与实现(C语言实现) 中.不管是顺序队列还是链式队列,在尾加和删除头部的操作时.总有一个时间复杂度让人不惬意. 比方在顺序队列中,删除头部的操作后,总要将后面全部的结点都向前移动一 ... 
- oracle 多字段去重查询
			oracle 多字段去重查询 CreationTime--2018年6月29日15点11分 Author:Marydon 1.情景展示 需要对表BASE_MRI_DEVICE的COMPNAME.F ... 
- glob 模块
			# -*- coding: utf-8 -*- #python 27 #xiaodeng #glob 模块 #http://python.jobbole.com/81552/ #查找文件只用到三个匹配 ... 
- Windows下如何配置tomcat环境变量
			Apache Tomcat 是一款 Java Servlet 和 JavaServer Pages 技术的开源软件实现,可以作为测试 Servlet 的独立服务器,而且可以集成到 Apache Web ... 
- 利用 AFN 上传相册或拍照图片
			概述 自定义上传图片请求,自定义调取相册及拍照,方便多处使用时调用. 详细 代码下载:http://www.demodashi.com/demo/10718.html 由于项目中多处需要上传图片,我们 ... 
- HDOJ 5242 Game
			Game Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ... 
- 【LeetCode】13. Roman to Integer (2 solutions)
			Roman to Integer Given a roman numeral, convert it to an integer. Input is guaranteed to be within t ... 
