NYOJ 题目42 一笔画问题(欧拉图)
来源:互联网 发布:安卓网络诊断修复工具 编辑:程序博客网 时间:2024/05/18 20:10
一笔画问题
时间限制:3000 ms | 内存限制:65535 KB
难度:4
- 描述
zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。
规定,所有的边都只能画一次,不能重复画。
- 输入
- 第一行只有一个正整数N(N<=10)表示测试数据的组数。
每组测试数据的第一行有两个正整数P,Q(P<=1000,Q<=2000),分别表示这个画中有多少个顶点和多少条连线。(点的编号从1到P)
随后的Q行,每行有两个正整数A,B(0<A,B<P),表示编号为A和B的两点之间有连线。 - 输出
- 如果存在符合条件的连线,则输出"Yes",
如果不存在符合条件的连线,输出"No"。 - 样例输入
24 31 21 31 44 51 22 31 31 43 4
- 样例输出
NoYes
- 来源
- [张云聪]原创
- 上传者
- 张云聪
ac代码
#include<stdio.h>#include<string.h>int head[1010];struct s{int u,v,next;}edge[2020*2];int n,m,cnt,vis[1010],dig[1010],sum;void add(int u,int v){edge[cnt].u=u;edge[cnt].v=v;edge[cnt].next=head[u];head[u]=cnt++;}void dfs(int u){vis[u]=1;sum++;for(int i=head[u];i!=-1;i=edge[i].next){int v=edge[i].v;if(!vis[v])dfs(v);}}int main(){int t;scanf("%d",&t);while(t--){//int n,m;scanf("%d%d",&n,&m);int i,cnt=0;memset(head,-1,sizeof(head));memset(vis,0,sizeof(vis));memset(dig,0,sizeof(dig));for(i=0;i<m;i++){int u,v;scanf("%d%d",&u,&v);dig[u]++;dig[v]++;add(u,v);add(v,u);}sum=0;dfs(1);if(sum<n){printf("No\n");continue;}int ans=0;for(i=1;i<=n;i++){if(dig[i]&1)ans++;}if(ans==2||ans==0){printf("Yes\n");}elseprintf("No\n");}}
0 0
- NYOJ 题目42 一笔画问题(欧拉图)
- NYOJ 题目42:一笔画问题
- NYOJ 题目42 一笔画问题
- NYOJ--42(搜索)-题目----------------------------- 一笔画问题
- NYOJ 42一笔画问题||欧拉图
- 一笔画问题(nyoj 42)
- NYOJ 42 一笔画问题
- NYOJ 42 一笔画问题
- NYOJ 42一笔画问题
- NYOJ 42 一笔画问题
- NYOJ 42 一笔画问题
- nyoj-42-一笔画问题
- nyoj,42,一笔画问题
- Nyoj 42 一笔画问题
- NYOJ-42 一笔画问题
- NYOJ-42 一笔画问题
- NYOJ 42 一笔画问题
- nyoj 42 一笔画问题
- Eclipse导出可运行的jar包,作为工具发布webService接口
- Category protocol delegate
- js中几种实用的跨域方法原理详解
- 分布式网站架构后续:zookeeper技术浅析
- CentOS6.5 64位网站压力测试工具webbench
- NYOJ 题目42 一笔画问题(欧拉图)
- 定制Android ListView 快速滚动的滚动条-fast scroll bar thumb
- 游戏设计的艺术:一本透镜的书——第二十一章 有些游戏是和其他玩家一起玩的
- Unique Binary Search Trees
- 【SPOJ】Triple Sums【FFT】
- 6月最后一次博文——福利
- jmx+jconsole远程监视tomcat的jvm
- iOS IAP应用内购买汇总
- Android程序:程序中的文件读写实例