NYOJ42一笔画问题_欧拉图(记录节点度数+深搜)
来源:互联网 发布:便利店软件商品录入 编辑:程序博客网 时间:2024/04/29 18:47
题目链接
一笔画成问题类“七桥问题”每条边走一次,这题是可以回到原点也可以不回到原点。首先要确定是一个无向图,因为一笔画成没有规定一一定要从哪个点或者边开始。
关于欧拉图的理解可以参考下:知识点
对了,首先要先判断这个图的连通性!继而才有可能是欧拉图~
我用的深搜判断图的连通性,可以用并查集
#include<stdio.h>#include<vector>#include<string.h>using namespace std;int vis[1005];int degree[1005];int n,m,count;vector<int>e[2005];int dfs(int u){int i,v;for(i=0;i<e[u].size();i++){v=e[u][i];if(!vis[v]){ vis[v]=1; dfs(v); count++;}}} int main(){int T;scanf("%d",&T);while(T--){int i,u,v;int num;memset(degree,0,sizeof(degree));scanf("%d%d",&n,&m);for(i=0;i<=n;i++){e[i].clear();}while(m--){scanf("%d%d",&u,&v);e[u].push_back(v);e[v].push_back(u);degree[u]++;degree[v]++;}memset(vis,0,sizeof(vis));vis[1]=1;count=1;dfs(1); num=0;if(count==n){for(i=1;i<=n;i++){if(degree[i]%2!=0) num++; } if(num==0||num==2)//度数为奇数的个数为0个或2个时可以满足一笔画成 printf("Yes\n"); else printf("No\n");}elseprintf("No\n");}return 0;}
0 0
- NYOJ42一笔画问题_欧拉图(记录节点度数+深搜)
- nyoj42一笔画问题(欧拉图)
- nyoj42 一笔画问题【欧拉图(模板)】
- nyoj42 一笔画问题(欧拉图、dfs)
- nyoj42 一笔画问题 欧拉图
- nyoj42一笔画问题(欧拉图)
- nyoj42(一笔画问题)
- NYOJ42 一笔画问题
- NYOJ42-一笔画问题
- nyoj42一笔画问题
- nyoj42 一笔画问题
- NYOJ42-一笔画问题
- NYOJ42一笔画问题
- nyoj42 一笔画问题
- NYoj42 一笔画问题
- nyoj42 一笔画问题
- 一笔画问题 nyoj42
- nyoj42一笔画问题
- Tanks Unity Tutorial
- spark rdd 和 DF 转换
- Gson解析,Volley使用,Gson转成Bean 类 _____给你一个json文件的网址, 一秒解析出你想要的参数.
- 关于Mybatis的输入参数包装
- ThinkPHP 5.5版本以上”No input file specified“问题解决
- NYOJ42一笔画问题_欧拉图(记录节点度数+深搜)
- poj3101——Astronomy(大数数学&gcd)
- 欢迎使用CSDN-markdown编辑器
- 那些“不务正业”的IT培训公司
- @SuppressWarnings("serial")注解
- java判断字符串是否为日期格式
- [leetcode]: 504. Base 7
- 2分钟读懂Hadoop和Spark的异同
- led驱动测试程序