NYOJ 42 一笔画问题
2014-03-10 11:25
281 查看
这题开始以为很水。判断一下每个点的奇偶就可以了,只存在两个点是奇点,就是起点和终点。
提交了WA了。后来思考是不是要每个点都要连通。DFS来了一次。AC了。
提交了WA了。后来思考是不是要每个点都要连通。DFS来了一次。AC了。
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> using namespace std; int u[1001]; bool vis[1001][1001]; bool g[1001][1001]; bool v[1001]; int n,m; void dfs(int i) { for(int j=1;j<=n;j++) { if(g[i][j]&&!vis[i][j]) { vis[i][j]=vis[j][i]=1; v[i]=v[j]=1; dfs(j); } } } int main() { int t; cin>>t; while(t--) { cin>>n>>m; int a,b; bool ok=0; memset(u,0,sizeof(u)); memset(vis,0,sizeof(vis)); memset(g,0,sizeof(g)); memset(v,0,sizeof(v)); for(int i=0;i<m;i++) { scanf("%d%d",&a,&b); u[a]++,u[b]++; g[a][b]=g[b][a]=1; } int num=0; for(int i=1;i<=n;i++) { if(u[i]&1)num++; if(num>2){ok=1;break;} } if(ok){printf("No\n");continue;} else { dfs(1); for(int i=1;i<=n;i++) if(!v[i]){ok=1;break;} } if(ok)printf("No\n"); else printf("Yes\n"); } }
相关文章推荐
- nyoj 42 一笔画问题 (搜索+队列)
- nyoj 42 一笔画问题《欧拉回路》
- nyoj 42 一笔画问题 欧拉路径
- NYOJ-42 一笔画问题
- nyoj 42 一笔画问题
- NYOJ42-一笔画问题
- NYOJ 42 一笔画问题 http://acm.nyist.net/JudgeOnline/problem.php?pid=42
- nyoj 42-一笔画问题
- Nyoj 42 一笔画问题
- nyoj 42- 一笔画问题(欧拉回路)
- NYOJ 42-一笔画问题(判断欧拉回路)
- nyoj 42 一笔画问题
- NYOJ 题目42 一笔画问题 (欧拉连通图+并查集)
- nyoj 42 一笔画问题(欧拉通路+dfs || 并查集)
- NYOJ-42 一笔画问题(图论,深搜)
- NYOJ 42 一笔画问题
- NYOJ 42 一笔画问题(欧拉路径)
- nyoj 42 一笔画问题
- NYOJ 42 一笔画问题
- nyoj42 一笔画问题