首页 > 学院 > 开发设计 > 正文

一笔画问题(南阳理工oj)

2019-11-06 07:02:33
字体:
来源:转载
供稿:网友
#include<iostream>#include<cstring>using namespace std;int a[1001];int fa[1001];int find(int i){	while(i!=fa[i])	   i=fa[i];	return i;}void join(int i,int j){	int fa_i=find(i);	int fa_j=find(j);	if(fa_i!=fa_j)	{		fa[fa_j]=fa_i;					}		}int main(){	  int t,n,m,x,y;  bool zero=true; int flag=0;  int odd=0;  cin>>t;  while(t--)		{		memset(a,0,sizeof(a));			odd=0;		flag=0;		cin>>n>>m;		for(int j=1;j<=n;j++)		fa[j]=j;		for(int j=0;j<m;j++)		{						cin>>x>>y;			a[x]++;			a[y]++;			join(x,y);		}		for(int i=1;i<=n;i++)		{						if(a[i]%2==1){					odd++;					}			if(fa[i]==i)flag++;					}				if(flag==1&&odd<=2)cout<<"Yes/n";		else cout<<"No/n";	}}
上一篇:HDU-6011

下一篇:HDU2206 IP的计算

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表