标签:acm算法 algorithm amp 合并 namespace
给你一幅无向图,让你判断是不是圆。。
成圆条件有两个。
第一:每一个点的入度只能为2.
第二:所有点属于一个集合。
上代码;
#include <stdio.h> #include <cstring> #include <algorithm> using namespace std; #include <iostream> #include <cmath> #include <queue> #include <stack> #include <set> #include <map> #include <time.h> #include <stdlib.h> int p[26]; int v[26]; int find(int x) { if(p[x]!=x) p[x]=find(p[x]); return p[x]; } int hebing(int x,int y) { return p[x]=y; } int main() { int n,m,i,j,a,b; while(cin>>n>>m) { memset(v,0,sizeof(v)); for(i=1; i<=25; i++) p[i]=i; while(m--) { cin>>a>>b; v[a]++; //入度 v[b]++; a=find(a); b=find(b); if(a!=b) hebing(a,b); //合并、 } for(i=1; i<=n; i++) { if(p[1]!=p[i]|| v[i]!=2) break; } // cout<<i<<endl; if(i==n+1) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }
标签:acm算法 algorithm amp 合并 namespace
原文地址:http://blog.csdn.net/sky_miange/article/details/44885731