UVa10596 - Morning Walk

2014-11-24 11:16:22 · 作者: · 浏览: 0

题目地址:点击打开链接

#include 
  
   
using namespace std;
const int maxsize = 210;
int f[maxsize];
int degree[maxsize];
int find_father(int x)
{
	if(f[x]==-1||f[x]==-2)
	{
		f[x]=-1;
		return x;
	}
	else
		return find_father(f[x]);
}
void Union(int a,int b)
{
	int father_a=find_father(a);
	int father_b=find_father(b);
	if(father_a!=father_b)
		f[father_a]=father_b;
}
int main()
{
	int N,R;
	while(cin>>N>>R)
	{
		int i;
		for(i=0;i
   
    >a>>b; ++degree[a]; ++degree[b]; Union(a,b); } int num=0; for(i=0;i