一笔画问题
来源:互联网 发布:数据冗余是什么意思 编辑:程序博客网 时间:2024/06/09 20:03
描述
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
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 <stdio.h>#include <string.h>#include <iostream>#include<vector>using namespace std;vector<int> vertex[ 100001 ];int vis[ 100001 ];int flag=0;void dfs( int n ){ vis[ n ]=1; for( int i=0;i<vertex[ n ].size();i++ ) { int v=vertex[ n ][ i ]; if( !vis[ v ] ) { dfs( v ); for( int j=1;j<=n;j++ ) if( !vis[ j ] ) flag=1; } }}int main(){ int t; cin>>t; while( t-- ) { int m,n,a,b; cin>>m>>n; memset( vis,0,sizeof( vis ) ); flag=0; for(int i = 0; i <= m; ++i) if(!vertex[ i ].empty()) vertex[ i ].clear(); for( int i=1;i<=n;i++ ) { scanf("%d%d",&a,&b); vertex[ a ].push_back( b ); vertex[ b ].push_back( a ); } vis[ 1 ]=1; dfs( 1 ); if( flag ) printf("No\n"); else printf("Yes\n"); }return 0;}
- 一笔画问题
- 一笔画问题
- 一笔画问题
- nyoj_42 一笔画问题
- NYOJ42 一笔画问题
- NYOJ42-一笔画问题
- NYOJ 一笔画问题
- 一笔画问题 nyist42
- nyoj42一笔画问题
- 一笔画问题
- 一笔画问题
- nyoj42 一笔画问题
- 一笔画问题
- NYOJ42-一笔画问题
- NYOJ42一笔画问题
- 一笔画问题
- 一笔画问题
- 42 一笔画问题
- hdu 3345 War Chess(BFS+模拟)
- zoj 3735 Josephina and RPG (2013 亚洲区域赛 长沙站 J)
- 架构设计:生产者/消费者模式:双缓冲区
- Android--ListView和ArrayAdapter例子
- hdu 1575 Tr A
- 一笔画问题
- 在线研讨会:LPKF 微波/射频电路板快速制作新型解决方案
- Linux下Framebuffer驱动简介
- (转)联想研究院裁员---血淋漓的教训:公司不是家!
- 阻塞队列之LinkedTransferQueue
- ubuntu wiki-FrameBuffer
- 【COCOS2DX-ANDROID-游戏开发之二十】停止手打所有cpp文件到android.mk
- POJ--1700--Crossing River--过河问题
- 转一个很好的视频编解码博客