一笔画问题

原创 2018年04月17日 09:18:33

描述

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
描述

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

无向图的欧拉路径:图连通且奇数点不大于2

#include <bits/stdc++.h>
using namespace std;
int we[1001];
int pre[1010];
int find(int x){
	if(pre[x]==x)
		return x;
	return pre[x]=find(pre[x]);
}
void mem(int a,int b){
	int x=find(a),y=find(b);
	if(x!=y)
		pre[x]=y;
}
int main(){
	int t;
	scanf("%d",&t);
	int n,m;
	while(t--){
		scanf("%d %d",&n,&m);
		int a,b;
		for(int i=0;i<=n;i++){
			pre[i]=i;
			we[i]=0;
		}
		for(int i=1;i<=m;i++){
			scanf("%d %d",&a,&b);
			we[a]++;
			we[b]++;
			mem(a,b);
		}
		int f=0;
		int w=0;
		for(int i=1;i<=n;i++){
			int gg=find(i);
			if(we[i]%2==1)
				f++;
			if(pre[i]==i)
				w++;
		}
		if(w==1 && f<=2)
			printf("Yes\n");
		else
			printf("No\n");			
	}
	return 0;
}


4.8.一些杂散但值得讨论的问题

本课程零散讲了一些C语言中值得讨论的知识点。譬如main函数的传参和返回值、void类型、NULL宏定义、debug调试宏等。目的是进一步提升大家对C语言的理解深度,提升大家的实战编程能力。
  • 2015年10月22日 10:32

一笔画问题的c++实现

一笔画问题,即欧拉回路问题,最近在算法课上老师留了这个作业,下面将我的实现说一下。首先,先将问题描述一下。 该图中节点编号从上至下,从左至右编号如下  1   2 3 4 5 67 8 9 10 11...
  • dlzjp123
  • dlzjp123
  • 2009-10-02 17:57:00
  • 919

图论算法---- 一笔画问题(欧拉路)

一、题目描述 题目描述 对给定的一个无向图,判断能否一笔画出。若能,输出一笔画的先后顺序,否则输出“No Solution!” 所谓一笔画出,即每条边仅走一次,每个顶点可以多次经过。 输出字典...
  • C20180602_csq
  • C20180602_csq
  • 2016-10-10 12:58:30
  • 3019

nyoj 42 一笔画问题 欧拉路径

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=42 欧拉回路,
  • u012845138
  • u012845138
  • 2014-05-20 17:20:53
  • 637

欧拉回路解决一笔画问题

一笔画
  • disparity_CJK
  • disparity_CJK
  • 2016-05-06 14:38:09
  • 1062

【原创】一笔画问题(欧拉路)

一笔画问题(euler-circuit.cpp) 题目描述 对给定的一个无向图,判断能否一笔画出。若能,输出一笔画的先后顺序,否则输出“No Solution!” 所谓一笔画出,即每条边仅走一次,每个...
  • c20182030
  • c20182030
  • 2016-10-08 13:37:37
  • 1119

nyoj_42 一笔画问题

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

数据结构:图论:欧拉回路!一笔画问题

从无向图中的一个结点出发走出一条道路,每条边恰好经过一次。这样的路线称为欧拉道路。 奇点的概念:一个点的度数为奇数的时候,这个点就称为:奇点。 无向图中结论: 不难发现,在欧拉道路中,除了起点跟...
  • u010470972
  • u010470972
  • 2014-06-09 14:47:43
  • 1101

欧拉路径--一笔画问题

一笔画问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,...
  • u012620270
  • u012620270
  • 2014-02-12 10:22:28
  • 711

欧拉路径(一笔画问题)

定理一 连通的无向图有欧拉路径的充要条件是: G中奇顶点(连接的边数量为奇数的顶点)的数目等于0或者2。 连通的无向图是欧拉环(存在欧拉回路)的充要条件是: G中每个顶点的度都是偶数。 定理...
  • qq_15015129
  • qq_15015129
  • 2016-11-02 14:31:24
  • 3777
收藏助手
不良信息举报
您举报文章:一笔画问题
举报原因:
原因补充:

(最多只允许输入30个字)