本文共 993 字,大约阅读时间需要 3 分钟。
题目地址:
#include #include #include #include #include #include #include #include #include #include #include #include #pragma comment(linker, "/STACK:102400000,102400000")typedef long long LL;const int inf=0x3f3f3f3f;const double pi= acos(-1.0);const double esp=1e-6;using namespace std;const int Maxn=1010;int uset[Maxn];int ran[Maxn];void makeset(int n){ memset(ran,0,sizeof(ran)); for(int i=0;i<=n;i++) uset[i]=i;}int findx(int x){ int p=x,t; while(uset[p]!=p) p=uset[p]; while(x!=uset[x]) { t=uset[x]; uset[x]=p; x=t; } return x;}void unionset(int x,int y){ int x1=findx(x); int y1=findx(y); if(x1!=y1) { uset[x1]=y1; }}int main(){ int T; int n,m,u,v; scanf("%d",&T); while(T--){ scanf("%d %d",&n,&m); makeset(n); while(m--){ scanf("%d %d",&u,&v); ran[u]++; ran[v]++; unionset(u,v); } int t=findx(1); int flag=0; for(int i=1;i<=n;i++){ if(ran[i]%2||findx(i)!=t){ flag=1; break; } } if(flag) puts("0"); else puts("1"); } return 0;}
转载地址:http://sjsaf.baihongyu.com/