标签:printf dfs cstring 正整数 editable clu others highlight http
zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。
规定,所有的边都只能画一次,不能重复画。
2 4 3 1 2 1 3 1 4 4 5 1 2 2 3 1 3 1 4 3 4
No Yes
#include <cstring> #include <cstdio> #include <queue> #define Max 1500 using namespace std; int du[Max],tx[Max][Max]; bool vis[Max]; bool flag; int tot,N; void dfs(int k,int M) { vis[k]=1; for(int i=1;i<=M;++i) { if(tx[k][i]) { du[i]++; if(!vis[i]) dfs(i,M); } } } int main() { scanf("%d",&N); for(int p,q;N--;) { memset(du,0,sizeof(du)); memset(tx,0,sizeof(tx)); memset(vis,0,sizeof(vis)); scanf("%d%d",&p,&q); for(int x,y;q--;) { scanf("%d%d",&x,&y); tx[x][y]=tx[y][x]=1; } bool flag=true; dfs(1,p); for(int i=1;i<=p;++i) { if(!vis[i]) flag=false; } if(!flag) printf("No\n"); else { int tot=0; for(int i=1;i<=p;++i) { if(du[i]%2!=0) tot++; } if(tot==0||tot==2) printf("Yes\n"); else printf("No\n"); } } return 0; }
标签:printf dfs cstring 正整数 editable clu others highlight http
原文地址:http://www.cnblogs.com/ruojisun/p/6686084.html